diff options
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.java | 103 |
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; + } } + |