removed redundant code.
changed nested if condition to switch case.
added method for resuablity of string builder.
rename variable to follow camelCase.
removed tab char and changed them with spaces.
Issue-ID:SO-98
Change-Id: If4cf02dede7903ed8b35e4e6879b8691d4f3c48d
Signed-off-by: Bharat saraswal <bharat.saraswal@huawei.com>
package com.woorea.openstack.keystone;
+import com.woorea.openstack.base.client.OpenStackClient;
+import com.woorea.openstack.base.client.OpenStackClientConnector;
import com.woorea.openstack.keystone.api.EndpointsResource;
import com.woorea.openstack.keystone.api.RolesResource;
import com.woorea.openstack.keystone.api.ServicesResource;
import com.woorea.openstack.keystone.api.TokensResource;
import com.woorea.openstack.keystone.api.UsersResource;
-import com.woorea.openstack.base.client.OpenStackClient;
-import com.woorea.openstack.base.client.OpenStackClientConnector;
-
public class Keystone extends OpenStackClient {
-
- private final TokensResource TOKENS;
-
- private final TenantsResource TENANTS;
-
- private final UsersResource USERS;
-
- private final RolesResource ROLES;
-
- private final ServicesResource SERVICES;
-
- private final EndpointsResource ENDPOINTS;
-
- public Keystone(String endpoint, OpenStackClientConnector connector) {
- super(endpoint, connector);
- TOKENS = new TokensResource(this);
- TENANTS = new TenantsResource(this);
- USERS = new UsersResource(this);
- ROLES = new RolesResource(this);
- SERVICES = new ServicesResource(this);
- ENDPOINTS = new EndpointsResource(this);
- }
-
- public Keystone(String endpoint) {
- this(endpoint, null);
- }
-
- public TokensResource tokens() {
- return TOKENS;
- }
-
- public TenantsResource tenants() {
- return TENANTS;
- }
-
- public UsersResource users() {
- return USERS;
- }
-
- public RolesResource roles() {
- return ROLES;
- }
-
- public ServicesResource services() {
- return SERVICES;
- }
-
- public EndpointsResource endpoints() {
- return ENDPOINTS;
- }
+ private final TokensResource tokens;
+
+ private final TenantsResource tenants;
+
+ private final UsersResource users;
+
+ private final RolesResource roles;
+
+ private final ServicesResource services;
+
+ private final EndpointsResource endpoints;
+
+ public Keystone(String endpoint, OpenStackClientConnector connector) {
+ super(endpoint, connector);
+ tokens = new TokensResource(this);
+ tenants = new TenantsResource(this);
+ users = new UsersResource(this);
+ roles = new RolesResource(this);
+ services = new ServicesResource(this);
+ endpoints = new EndpointsResource(this);
+ }
+
+ public Keystone(String endpoint) {
+ this(endpoint, null);
+ }
+
+ public TokensResource tokens() {
+ return tokens;
+ }
+
+ public TenantsResource tenants() {
+ return tenants;
+ }
+
+ public UsersResource users() {
+ return users;
+ }
+
+ public RolesResource roles() {
+ return roles;
+ }
+
+ public ServicesResource services() {
+ return services;
+ }
+
+ public EndpointsResource endpoints() {
+ return endpoints;
+ }
}
package com.woorea.openstack.keystone.utils;
-import java.util.concurrent.ConcurrentHashMap;
-
import com.woorea.openstack.base.client.OpenStackTokenProvider;
import com.woorea.openstack.keystone.Keystone;
import com.woorea.openstack.keystone.model.Access;
import com.woorea.openstack.keystone.model.authentication.UsernamePassword;
+import java.util.concurrent.ConcurrentHashMap;
public class KeystoneTokenProvider {
- protected Keystone keystone;
-
- protected String username;
-
- protected String password;
-
- ConcurrentHashMap<String, Access> hashTenantAccess;
-
- public KeystoneTokenProvider(String endpoint, String username, String password) {
- this.keystone = new Keystone(endpoint);
- this.username = username;
- this.password = password;
- this.hashTenantAccess = new ConcurrentHashMap<String, Access>();
- }
-
- public Access getAccessByTenant(String tenantName) {
- Access access = hashTenantAccess.get(tenantName);
- if (access == null) {
- access = keystone.tokens().authenticate(new UsernamePassword(username, password))
- .withTenantName(tenantName)
- .execute();
- hashTenantAccess.put(tenantName, access);
- }
- return access;
- }
-
- public void expireAccessByTenant(String tenantName) {
- hashTenantAccess.remove(tenantName);
- }
-
- public OpenStackTokenProvider getProviderByTenant(final String tenantName) {
- final KeystoneTokenProvider keystoneTokenProvider = this;
- return new OpenStackTokenProvider() {
- @Override
- public String getToken() {
- return keystoneTokenProvider.getAccessByTenant(tenantName)
- .getToken().getId();
- }
- @Override
- public void expireToken() {
- keystoneTokenProvider.expireAccessByTenant(tenantName);
- }
- };
- }
+ protected Keystone keystone;
+
+ protected String username;
+
+ protected String password;
+
+ protected ConcurrentHashMap<String, Access> hashTenantAccess;
+
+ public KeystoneTokenProvider(String endpoint, String username, String password) {
+ keystone = new Keystone(endpoint);
+ this.username = username;
+ this.password = password;
+ hashTenantAccess = new ConcurrentHashMap<>();
+ }
+
+ public Access getAccessByTenant(String tenantName) {
+ Access access = hashTenantAccess.get(tenantName);
+ if (access == null) {
+ access = keystone.tokens().authenticate(new UsernamePassword(username, password))
+ .withTenantName(tenantName)
+ .execute();
+ hashTenantAccess.put(tenantName, access);
+ }
+ return access;
+ }
+
+ public void expireAccessByTenant(String tenantName) {
+ hashTenantAccess.remove(tenantName);
+ }
+
+ public OpenStackTokenProvider getProviderByTenant(final String tenantName) {
+ final KeystoneTokenProvider keystoneTokenProvider = this;
+ return new OpenStackTokenProvider() {
+ @Override
+ public String getToken() {
+ return keystoneTokenProvider.getAccessByTenant(tenantName)
+ .getToken().getId();
+ }
+
+ @Override
+ public void expireToken() {
+ keystoneTokenProvider.expireAccessByTenant(tenantName);
+ }
+ };
+ }
}
package com.woorea.openstack.keystone.utils;
-import java.util.List;
-
import com.woorea.openstack.keystone.model.Access.Service;
+import java.util.List;
public class KeystoneUtils {
- public static String findEndpointURL(List<Service> serviceCatalog, String type, String region, String facing) {
- for(Service service : serviceCatalog) {
- if(type.equals(service.getType())) {
- for(Service.Endpoint endpoint : service.getEndpoints()) {
- if(region == null || region.equals(endpoint.getRegion())) {
- if(endpoint.getPublicURL() != null && facing.equals("public")) {
- return endpoint.getPublicURL();
- } else if(endpoint.getInternalURL() != null && facing.equals("internal")) {
- return endpoint.getInternalURL();
- } else if(endpoint.getAdminURL() != null && facing.equals("admin")) {
- return endpoint.getAdminURL();
- }
- }
- }
- }
- }
- throw new RuntimeException("endpoint url not found");
- }
+ private KeystoneUtils() {
+ }
+
+ public static String findEndpointURL(List<Service> serviceCatalog, String type, String region, String facing) {
+ for (Service service : serviceCatalog) {
+ if (type.equals(service.getType())) {
+ for (Service.Endpoint endpoint : service.getEndpoints()) {
+ String url = handleServiceEndPoints(endpoint, region, facing);
+ if (url != null) {
+ return url;
+ }
+ }
+ }
+ }
+ throw new RuntimeException("endpoint url not found");
+ }
+ private static String handleServiceEndPoints(Service.Endpoint endpoint, String region, String facing) {
+ if (region == null || region.equals(endpoint.getRegion())) {
+ switch (facing) {
+ case "public":
+ return endpoint.getPublicURL();
+ case "internal":
+ return endpoint.getInternalURL();
+ case "admin":
+ return endpoint.getAdminURL();
+ default:
+ return null;
+ }
+ }
+ return null;
+ }
}
package com.woorea.openstack.keystone.v3;
+import com.woorea.openstack.base.client.OpenStackClient;
+import com.woorea.openstack.base.client.OpenStackClientConnector;
import com.woorea.openstack.keystone.v3.api.DomainsResource;
import com.woorea.openstack.keystone.v3.api.EndpointsResource;
+import com.woorea.openstack.keystone.v3.api.ProjectsResource;
import com.woorea.openstack.keystone.v3.api.RolesResource;
import com.woorea.openstack.keystone.v3.api.ServicesResource;
-import com.woorea.openstack.keystone.v3.api.ProjectsResource;
import com.woorea.openstack.keystone.v3.api.TokensResource;
import com.woorea.openstack.keystone.v3.api.UsersResource;
-import com.woorea.openstack.base.client.OpenStackClient;
-import com.woorea.openstack.base.client.OpenStackClientConnector;
public class Keystone extends OpenStackClient {
-
- private final TokensResource TOKENS;
-
- private final DomainsResource DOMAINS;
-
- private final ProjectsResource PROJECTS;
-
- private final UsersResource USERS;
-
- private final RolesResource ROLES;
-
- private final ServicesResource SERVICES;
-
- private final EndpointsResource ENDPOINTS;
-
- public Keystone(String endpoint, OpenStackClientConnector connector) {
- super(endpoint, connector);
- TOKENS = new TokensResource(this);
- DOMAINS = new DomainsResource(this);
- PROJECTS = new ProjectsResource(this);
- USERS = new UsersResource(this);
- ROLES = new RolesResource(this);
- SERVICES = new ServicesResource(this);
- ENDPOINTS = new EndpointsResource(this);
- }
-
- public Keystone(String endpoint) {
- this(endpoint, null);
- }
-
- public TokensResource tokens() {
- return TOKENS;
- }
-
- public DomainsResource domains() {
- return DOMAINS;
- }
-
- public ProjectsResource projects() {
- return PROJECTS;
- }
-
- public UsersResource users() {
- return USERS;
- }
-
- public RolesResource roles() {
- return ROLES;
- }
-
- public ServicesResource services() {
- return SERVICES;
- }
-
- public EndpointsResource endpoints() {
- return ENDPOINTS;
- }
+ private final TokensResource tokens;
+
+ private final DomainsResource domains;
+
+ private final ProjectsResource projects;
+
+ private final UsersResource users;
+
+ private final RolesResource roles;
+
+ private final ServicesResource services;
+
+ private final EndpointsResource endpoints;
+
+ public Keystone(String endpoint, OpenStackClientConnector connector) {
+ super(endpoint, connector);
+ tokens = new TokensResource(this);
+ domains = new DomainsResource(this);
+ projects = new ProjectsResource(this);
+ users = new UsersResource(this);
+ roles = new RolesResource(this);
+ services = new ServicesResource(this);
+ endpoints = new EndpointsResource(this);
+ }
+
+ public Keystone(String endpoint) {
+ this(endpoint, null);
+ }
+
+ public TokensResource tokens() {
+ return tokens;
+ }
+
+ public DomainsResource domains() {
+ return domains;
+ }
+
+ public ProjectsResource projects() {
+ return projects;
+ }
+
+ public UsersResource users() {
+ return users;
+ }
+
+ public RolesResource roles() {
+ return roles;
+ }
+
+ public ServicesResource services() {
+ return services;
+ }
+
+ public EndpointsResource endpoints() {
+ return endpoints;
+ }
}