aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ResourceTranslationFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ResourceTranslationFactory.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ResourceTranslationFactory.java103
1 files changed, 36 insertions, 67 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ResourceTranslationFactory.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ResourceTranslationFactory.java
index 730c2ddd7a..ab8230d946 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ResourceTranslationFactory.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ResourceTranslationFactory.java
@@ -21,87 +21,56 @@
package org.openecomp.sdc.translator.services.heattotosca;
-import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationBase;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationBase;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationCinderVolumeAttachmentImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationCinderVolumeImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationContrailAttachPolicyImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationContrailNetworkPolicyImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationContrailServiceInstanceImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationContrailServiceTemplateImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationContrailV2NetworkPolicyImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationContrailV2VirtualNetworkImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationContrailV2VmInterfaceImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationContrailVirtualNetworkImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationDefaultImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationNestedImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationNeutronNetImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationNeutronPortImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationNeutronSecurityGroupImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationNeutronSubnetImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationNovaServerGroupsImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationNovaServerImpl;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationResourceGroupImpl;
+import java.util.Map;
-import java.util.Objects;
public class ResourceTranslationFactory {
+ private static Map<String, ImplementationConfiguration> resourceTranslationImplMap;
+
+ static {
+ Configuration config = ConfigurationManager.lookup();
+ resourceTranslationImplMap = config.populateMap(ConfigConstants.TRANSLATOR_NAMESPACE,
+ ConfigConstants.RESOURCE_TRANSLATION_IMPL_KEY, ImplementationConfiguration.class);
+ resourceTranslationImplMap.putAll(config.populateMap(ConfigConstants.MANDATORY_TRANSLATOR_NAMESPACE,
+ ConfigConstants.RESOURCE_TRANSLATION_IMPL_KEY, ImplementationConfiguration.class));
+ }
/**
- * Gets instance.
+ * Gets resource translation instance.
*
* @param resource the resource
* @return the instance
*/
public static ResourceTranslationBase getInstance(Resource resource) {
- HeatResourcesTypes heatResource = HeatResourcesTypes.findByHeatResource(resource.getType());
- if (Objects.isNull(heatResource)) {
- if (HeatToToscaUtil.isYmlFileType(resource.getType())) {
- return new ResourceTranslationNestedImpl();
- }
- return new ResourceTranslationDefaultImpl();
- }
- switch (heatResource) {
- case NOVA_SERVER_RESOURCE_TYPE:
- return new ResourceTranslationNovaServerImpl();
- case NOVA_SERVER_GROUP_RESOURCE_TYPE:
- return new ResourceTranslationNovaServerGroupsImpl();
- case NEUTRON_SECURITY_GROUP_RESOURCE_TYPE:
- return new ResourceTranslationNeutronSecurityGroupImpl();
- case NEUTRON_PORT_RESOURCE_TYPE:
- return new ResourceTranslationNeutronPortImpl();
- case CONTRAIL_VIRTUAL_NETWORK_RESOURCE_TYPE:
- return new ResourceTranslationContrailVirtualNetworkImpl();
- case CONTRAIL_V2_VIRTUAL_NETWORK_RESOURCE_TYPE:
- return new ResourceTranslationContrailV2VirtualNetworkImpl();
- case CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE:
- return new ResourceTranslationContrailV2VmInterfaceImpl();
- case CINDER_VOLUME_RESOURCE_TYPE:
- return new ResourceTranslationCinderVolumeImpl();
- case CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE:
- return new ResourceTranslationCinderVolumeAttachmentImpl();
- case NEUTRON_NET_RESOURCE_TYPE:
- return new ResourceTranslationNeutronNetImpl();
- case NEUTRON_SUBNET_RESOURCE_TYPE:
- return new ResourceTranslationNeutronSubnetImpl();
- case CONTRAIL_NETWORK_RULE_RESOURCE_TYPE:
- return new ResourceTranslationContrailNetworkPolicyImpl();
- case CONTRAIL_V2_NETWORK_RULE_RESOURCE_TYPE:
- return new ResourceTranslationContrailV2NetworkPolicyImpl();
- case CONTRAIL_NETWORK_ATTACH_RULE_RESOURCE_TYPE:
- return new ResourceTranslationContrailAttachPolicyImpl();
- case RESOURCE_GROUP_RESOURCE_TYPE:
- return new ResourceTranslationResourceGroupImpl();
- case CONTRAIL_SERVICE_TEMPLATE:
- return new ResourceTranslationContrailServiceTemplateImpl();
- case CONTRAIL_SERVICE_INSTANCE:
- return new ResourceTranslationContrailServiceInstanceImpl();
- default:
- return new ResourceTranslationDefaultImpl();
+ if (isSupportedResource(resource.getType())) {
+ return getResourceTranslationImpl(resource.getType());
+ } else if (HeatToToscaUtil.isYmlFileType(resource.getType())) {
+ return getResourceTranslationImpl(ConfigConstants.NESTED_RESOURCE_TRANSLATION_IMPL_KEY);
}
+ return getResourceTranslationImpl(ConfigConstants.DEFAULT_RESOURCE_TRANSLATION_IMPL_KEY);
+ }
+
+ private static ResourceTranslationBase getResourceTranslationImpl(String resourceImplKey) {
+ String resourceTranslationImplClassName = resourceTranslationImplMap
+ .get(resourceImplKey).getImplementationClass();
+ return CommonMethods
+ .newInstance(resourceTranslationImplClassName, ResourceTranslationBase.class);
}
+ private static boolean isSupportedResource(String resourceType) {
+ if (resourceTranslationImplMap.containsKey(resourceType)
+ && resourceTranslationImplMap.get(resourceType).isEnable()) {
+ return true;
+ }
+ return false;
+ }
}
+