summaryrefslogtreecommitdiffstats
path: root/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java')
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java17
1 files changed, 14 insertions, 3 deletions
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java
index 6fd7a6364a..2a5b3ad994 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java
@@ -20,6 +20,7 @@
package org.openecomp.mso.openstack.utils;
+import java.lang.reflect.InvocationTargetException;
import org.openecomp.mso.cloud.CloudConfig;
import org.openecomp.mso.cloud.CloudConfigFactory;
import org.openecomp.mso.cloud.CloudIdentity;
@@ -36,7 +37,7 @@ public class MsoTenantUtilsFactory {
protected CloudConfig cloudConfig;
protected MsoJavaProperties msoProps = null;
private String msoPropID;
-
+
public MsoTenantUtilsFactory (String msoPropID) {
this.msoPropID = msoPropID;
}
@@ -48,10 +49,20 @@ public class MsoTenantUtilsFactory {
cloudConfig = cloudConfigFactory.getCloudConfig();
CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
+ return getTenantUtilsByServerType(cloudSite.getIdentityService().getIdentityServerType().toString());
+ }
+
+ public MsoTenantUtils getTenantUtilsByServerType(String serverType) {
+
MsoTenantUtils tenantU = null;
- if (cloudSite.getIdentityService().getIdentityServerType() == CloudIdentity.IdentityServerType.KEYSTONE)
- {
+ if (CloudIdentity.IdentityServerType.KEYSTONE.equals(serverType)) {
tenantU = new MsoKeystoneUtils (msoPropID);
+ } else {
+ try {
+ tenantU = CloudIdentity.IdentityServerType.valueOf(serverType).getMsoTenantUtilsClass().getConstructor(String.class).newInstance(msoPropID);
+ } catch (InvocationTargetException | InstantiationException | NoSuchMethodException | IllegalAccessException e) {
+ throw new RuntimeException("Could not instantiate an MsoTenantUtils class for " + serverType, e);
+ }
}
return tenantU;
}