diff options
author | talig <talig@amdocs.com> | 2018-01-01 14:52:01 +0200 |
---|---|---|
committer | talig <talig@amdocs.com> | 2018-01-01 14:52:01 +0200 |
commit | 25ca73d85757869a6d9cc33861070778503ff153 (patch) | |
tree | e947cd38990afb0e8d9b230df0daf5f436ee3435 /openecomp-be/lib/openecomp-healing-lib | |
parent | 664c11581c7ea5d36e36af1fe7b26e14271e77fe (diff) |
Remove onboarding BE redundant healers
Change-Id: I6b849608e64f88c6b91b1bc772fdb33aaa7e8245
Issue-ID: SDC-845
Signed-off-by: talig <talig@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-healing-lib')
34 files changed, 0 insertions, 6477 deletions
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json deleted file mode 100644 index 85eec77c56..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "VendorSoftwareProduct" : { - "VSP_OWNER_HEALER" : "org.openecomp.sdc.healing.healers.VspOwnerHealer", - "FILE_DATA_STRUCTURE_HEALER" : "org.openecomp.sdc.healing.healers.FileDataStructureHealer", - "QUESTIONNAIRE_HEALER" : "org.openecomp.sdc.healing.healers.VspQuestionnaireHealer", - "COMPOSITION_DATA_HEALER" : "org.openecomp.sdc.healing.healers.CompositionDataHealer", - "SUB_ENTITIES_HEALER" : "org.openecomp.sdc.healing.healers.SubEntitiesQuestionnaireHealer", - "ONBOARDING_METHOD_HEALER" : "org.openecomp.sdc.healing.healers.VspOnboardingMethodHealer", - "NIC_DATA_HEALER" : "org.openecomp.sdc.healing.healers.NicDataHealer", - "COMPONENT_QUESTIONNAIRE_HEALER" : "org.openecomp.sdc.healing.healers.ComponentQuestionnaireHealer", - "HEAT_TOSCA_TRANSLATION_HEALER" : "org.openecomp.sdc.healing.healers.HeatToToscaTranslationHealer", - "VLM_VERSION_HEALER" : "org.openecomp.sdc.healing.healers.VlmVersionHealer", - "VALIDATION_STRUCTURE_HEALER" : "org.openecomp.sdc.healing.healers.ValidationStructureHealer", - "FORWARDER_CAPABILITY_HEALER" : "org.openecomp.sdc.healing.healers.ForwarderCapabilityHealer" - }, - "VendorLicenseModel" : { - "VLM_OWNER_HEALER" : "org.openecomp.sdc.healing.healers.VlmOwnerHealer" - } -}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java deleted file mode 100644 index 83395e015a..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java +++ /dev/null @@ -1,202 +0,0 @@ -package org.openecomp.sdc.healing.healers; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import org.apache.commons.lang3.StringUtils; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Collection; -import java.util.Objects; - - -public class ComponentQuestionnaireHealer implements Healer { - - private static final String GENERAL = "general"; - private static final String IMAGE = "image"; - private static final String FORMAT = "format"; - private static final String CPU_OVER_SUBSCRIPTION_RATIO = "CpuOverSubscriptionRatio"; - private static final String MEMORY_RAM = "MemoryRAM"; - private static final String VM_SIZING = "vmSizing"; - private static final String COMPUTE = "compute"; - private static final String NUM_OF_VMS = "numOfVMs"; - private static final String DISK = "disk"; - private static final String IO_OP_PER_SEC = "IOOperationsPerSec"; - private static final String COMPUTE_CPU_OVER_SUBSCRIPTION_RATIO = "cpuOverSubscriptionRatio"; - private static final String COMPUTE_MEMORY_RAM = "memoryRAM"; - private static final String COMPUTE_IO_OP_PER_SEC = "ioOperationsPerSec"; - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - private final ComponentDao componentDao; - private final ComputeDao computeDao; - private final ImageDao imageDao; - - public ComponentQuestionnaireHealer() { - this.componentDao = ComponentDaoFactory.getInstance().createInterface(); - this.computeDao = ComputeDaoFactory.getInstance().createInterface(); - this.imageDao = ImageDaoFactory.getInstance().createInterface(); - } - - public ComponentQuestionnaireHealer(ComponentDao componentDao, - ComputeDao computeDao, ImageDao imageDao) { - this.componentDao = componentDao; - this.computeDao = computeDao; - this.imageDao = imageDao; - } - - @Override - public Object heal(String vspId, Version version) throws Exception { - mdcDataDebugMessage.debugEntryMessage("VSP ID", vspId); - - Collection<ComponentEntity> componentEntities = - componentDao.list(new ComponentEntity(vspId, version, null)); - componentEntities.forEach(componentEntity -> { - ComponentEntity componentQuestionnaireData = - componentDao.getQuestionnaireData(vspId, version, componentEntity.getId()); - String questionnaire = Objects.isNull(componentQuestionnaireData) ? null - : componentQuestionnaireData.getQuestionnaireData(); - - if (StringUtils.isNotBlank(questionnaire)) { - JsonParser jsonParser = new JsonParser(); - JsonObject json = (JsonObject) jsonParser.parse(questionnaire); - - Collection<ComputeEntity> computeEntities = computeDao.list(new ComputeEntity(vspId, - version, componentEntity.getId(), null)); - populateComputeQuestionnaire(json, computeEntities); - - Collection<ImageEntity> imageEntities = imageDao.list(new ImageEntity(vspId, - version, componentEntity.getId(), null)); - populateImageQuestionnaire(json, imageEntities); - - processDiskAttribute(json, "bootDiskSizePerVM"); - processDiskAttribute(json, "ephemeralDiskSizePerVM"); - - String questionnaireData = json.toString(); - componentEntity.setQuestionnaireData(questionnaireData); //Added to validate data in Junit - - componentDao.updateQuestionnaireData(vspId, version, componentEntity.getId(), - questionnaireData); - } - }); - return componentEntities; - } - - /** - * Move Disk Atributes from genral/image/ to genral/disk in component questionnaire itself - * - * @param json Component Json - * @param diskAttrName Name of disk attribute - */ - private void processDiskAttribute(JsonObject json, String diskAttrName) { - boolean isBootDisksizePerVM = isDiskAttributePresent(json, diskAttrName); - if (isBootDisksizePerVM) { - JsonObject diskJsonObject = json.getAsJsonObject(GENERAL).getAsJsonObject(DISK); - if (diskJsonObject == null) { - diskJsonObject = new JsonObject(); - } - - diskJsonObject.addProperty(diskAttrName, json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE) - .get(diskAttrName).getAsNumber()); - - json.getAsJsonObject(GENERAL).add(DISK, diskJsonObject); - json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE).remove(diskAttrName); - } - } - - private boolean isDiskAttributePresent(JsonObject json, String diskAttrName) { - return json.getAsJsonObject(GENERAL) != null - && json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE) != null - && json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE).get(diskAttrName) - != null; - } - - /** - * Move the required attributes from component to Image Questionnaire - * - * @param json Component Json - * @param imageEntities All images present in component - */ - private void populateImageQuestionnaire(JsonObject json, Collection<ImageEntity> imageEntities) { - JsonObject general = getJsonObject(json, GENERAL); - boolean isImageFormat = general != null && json - .getAsJsonObject(GENERAL) - .getAsJsonObject(IMAGE) != null && json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE) - .get(FORMAT) != null; - if (isImageFormat) { - JsonObject image = getJsonObject(general, IMAGE); - JsonElement jsonElement = image.get(FORMAT); - JsonObject jsonObject = new JsonObject(); - jsonObject.add(FORMAT, jsonElement); - imageEntities.forEach(imageEntity -> imageDao.updateQuestionnaireData(imageEntity.getVspId(), - imageEntity.getVersion(), imageEntity.getComponentId(), - imageEntity.getId(), jsonObject.toString())); - image.remove(FORMAT); - } - } - - private void populateComputeQuestionnaire(JsonObject json, Collection<ComputeEntity> - computeEntities) { - JsonObject compute = getJsonObject(json, COMPUTE); - if (compute != null) { - JsonObject vmSizing = handleVmSizing(compute); - vmSizing = handleNumOfVm(compute, vmSizing); - - if (vmSizing != null) { - JsonObject computeQuestionnaireJsonObject = new JsonObject(); - computeQuestionnaireJsonObject.add(VM_SIZING, vmSizing); - String computeQuestionnaire = computeQuestionnaireJsonObject.toString(); - computeEntities.forEach( - computeEntity -> computeDao.updateQuestionnaireData(computeEntity.getVspId(), - computeEntity.getVersion(), computeEntity.getComponentId(), - computeEntity.getId(), computeQuestionnaire)); - } - } - } - - private JsonObject handleVmSizing(JsonObject compute) { - JsonObject vmSizing = getJsonObject(compute, VM_SIZING); - if (vmSizing != null) { - JsonElement ioOperationsPerSec = vmSizing.get(IO_OP_PER_SEC); - if (ioOperationsPerSec != null) { - vmSizing.addProperty(COMPUTE_IO_OP_PER_SEC, ioOperationsPerSec.getAsNumber()); - vmSizing.remove(IO_OP_PER_SEC); - } - compute.remove(VM_SIZING); - } - return vmSizing; - } - - private JsonObject handleNumOfVm(JsonObject compute, JsonObject vmSizing) { - JsonObject numberOfVms = getJsonObject(compute, NUM_OF_VMS); - if (numberOfVms != null) { - JsonElement cpuRatio = numberOfVms.get(CPU_OVER_SUBSCRIPTION_RATIO); - JsonElement memoryRam = numberOfVms.get(MEMORY_RAM); - if (vmSizing == null && (cpuRatio != null || memoryRam != null)) { - vmSizing = new JsonObject(); - } - if (cpuRatio != null) { - vmSizing.addProperty(COMPUTE_CPU_OVER_SUBSCRIPTION_RATIO, cpuRatio.getAsString()); - numberOfVms.remove(CPU_OVER_SUBSCRIPTION_RATIO); - } - if (memoryRam != null) { - vmSizing.addProperty(COMPUTE_MEMORY_RAM, memoryRam.getAsString()); - numberOfVms.remove(MEMORY_RAM); - } - } - return vmSizing; - } - - private JsonObject getJsonObject(JsonObject json, String name) { - return json.getAsJsonObject(name); - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java deleted file mode 100644 index e7a5e30f2d..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java +++ /dev/null @@ -1,271 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.healing.healers; - -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; -import org.openecomp.core.model.dao.ServiceModelDao; -import org.openecomp.core.model.dao.ServiceModelDaoFactory; -import org.openecomp.core.model.types.ServiceElement; -import org.openecomp.core.translator.datatypes.TranslatorOutput; -import org.openecomp.core.utilities.file.FileContentHandler; -import org.openecomp.core.utilities.json.JsonUtil; -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.sdc.common.utils.CommonUtil; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; -import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity; -import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionDataExtractorFactory; -import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataManagerFactory; -import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor; -import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.io.IOException; -import java.util.Collection; -import java.util.Objects; -import java.util.Optional; - -public class CompositionDataHealer implements Healer { - private static final Version VERSION00 = new Version(0, 0); - private static final Version VERSION01 = new Version(0, 1); - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - private static final OrchestrationTemplateDao orchestrationTemplateDataDao = - OrchestrationTemplateDaoFactory.getInstance().createInterface(); - - private static ComponentDao componentDao = ComponentDaoFactory.getInstance().createInterface(); - private static NicDao nicDao = NicDaoFactory.getInstance().createInterface(); - private static NetworkDao networkDao = NetworkDaoFactory.getInstance().createInterface(); - private static ComputeDao computeDao = ComputeDaoFactory.getInstance().createInterface(); - private static DeploymentFlavorDao deloymentFlavorDao = DeploymentFlavorDaoFactory.getInstance() - .createInterface(); - private static ImageDao imageDao = ImageDaoFactory.getInstance().createInterface(); - - private static final ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao = - ServiceModelDaoFactory.getInstance().createInterface(); - private static CompositionDataExtractor compositionDataExtractor = - CompositionDataExtractorFactory.getInstance().createInterface(); - private static CompositionEntityDataManager compositionEntityDataManager = - CompositionEntityDataManagerFactory.getInstance().createInterface(); - - private final Logger log = (Logger) LoggerFactory.getLogger(this.getClass().getName()); - - public CompositionDataHealer() { - } - - @Override - public Optional<CompositionData> heal(String vspId, - Version version) throws IOException { - mdcDataDebugMessage.debugEntryMessage(null); - - Collection<ComponentEntity> componentEntities = - componentDao.list(new ComponentEntity(vspId, version, null)); - Collection<NicEntity> nicEntities = nicDao.listByVsp(vspId, version); - Collection<NetworkEntity> networkEntities = - networkDao.list(new NetworkEntity(vspId, version, null)); - - Optional<Pair<ToscaServiceModel, ToscaServiceModel>> serviceModels = - getServiceModelForHealing(vspId, version); - CompositionData compositionData = null; - if (!doesVspNeedCompositionDataHealing(componentEntities, networkEntities, nicEntities)) { - updateComponentsDisplayNames(componentEntities); - mdcDataDebugMessage.debugExitMessage(null, null); - } else { - if (!serviceModels.isPresent()) { - mdcDataDebugMessage.debugExitMessage(null, null); - return Optional.empty(); - } - compositionData = serviceModels.isPresent() ? healCompositionData(vspId, version, - serviceModels.get()) : null; - } - - if (serviceModels.isPresent()) { - compositionData = - getCompositionDataForHealing(vspId, version, serviceModels.get()); - HealNfodData(vspId, version, compositionData); - } - mdcDataDebugMessage.debugExitMessage(null, null); - return Optional.ofNullable(compositionData); - } - - private void HealNfodData(String vspId, Version version, CompositionData compositionData) { - Collection<ComponentEntity> componentEntities; - componentEntities = componentDao.list(new ComponentEntity(vspId, version, null)); - - Collection<ComputeEntity> computeEntities = computeDao.listByVsp(vspId, version); - Collection<ImageEntity> imageEntities = imageDao.listByVsp(vspId, version); - - if (CollectionUtils.isEmpty(computeEntities) && CollectionUtils.isEmpty(imageEntities)) { - for (Component component : compositionData.getComponents()) { - String componentId = null; - for (ComponentEntity componentEntity : componentEntities) { - if (componentEntity.getComponentCompositionData().getName().equals(component.getData() - .getName())) { - componentId = componentEntity.getId(); - break; - } - } - compositionEntityDataManager.saveComputesFlavorByComponent(vspId, version, component, - componentId); - compositionEntityDataManager.saveImagesByComponent(vspId, version, component, - componentId); - } - - } - } - - private CompositionData healCompositionData(String vspId, Version version, - Pair<ToscaServiceModel, ToscaServiceModel> toscaServiceModels) { - CompositionData compositionData = - getCompositionDataForHealing(vspId, version, toscaServiceModels); - compositionEntityDataManager.saveCompositionData(vspId, version, compositionData); - return compositionData; - } - - private boolean doesVspNeedCompositionDataHealing(Collection<ComponentEntity> componentEntities, - Collection<NetworkEntity> networkEntities, - Collection<NicEntity> nicEntities) { - - return (CollectionUtils.isEmpty(componentEntities) && CollectionUtils.isEmpty(nicEntities) && - CollectionUtils.isEmpty(networkEntities)); - } - - private CompositionData getCompositionDataForHealing(String vspId, Version version, - Pair<ToscaServiceModel, ToscaServiceModel> toscaServiceModels) { - mdcDataDebugMessage.debugEntryMessage(null); - - if (Objects.isNull(toscaServiceModels)) { - return null; - } - - CompositionData compositionData = compositionDataExtractor - .extractServiceCompositionData(toscaServiceModels.getRight()); - serviceModelDao.storeServiceModel(vspId, version, toscaServiceModels.getLeft()); - - mdcDataDebugMessage.debugExitMessage(null); - return compositionData; - } - - private void updateComponentsDisplayNames(Collection<ComponentEntity> componentEntities) { - if (CollectionUtils.isEmpty(componentEntities)) { - return; - } - - for (ComponentEntity component : componentEntities) { - updateComponentName(component); - componentDao.update(component); - } - } - - private void updateComponentName(ComponentEntity component) { - mdcDataDebugMessage.debugEntryMessage("VSP id, component id", component.getVspId(), component - .getId()); - - ComponentData componentData = - JsonUtil.json2Object(component.getCompositionData(), ComponentData.class); - componentData - .setDisplayName(compositionDataExtractor.getComponentDisplayName(componentData.getName())); - String displayName = componentData.getDisplayName(); - componentData.setName(componentData.getName().replace("com.att.d2", "org.openecomp")); - componentData.setVfcCode(displayName); - component.setCompositionData(JsonUtil.object2Json(componentData)); - - mdcDataDebugMessage.debugExitMessage("VSP id, component id", component.getVspId(), component - .getId()); - - } - - private Optional<Pair<ToscaServiceModel, ToscaServiceModel>> getServiceModelForHealing(String - vspId, - Version - version) - throws IOException { - mdcDataDebugMessage.debugEntryMessage("VSP id", vspId); - - /*OrchestrationTemplateEntity uploadData = - vendorSoftwareProductDao.getUploadData(new OrchestrationTemplateEntity(vspId, version));*/ - OrchestrationTemplateEntity uploadData = orchestrationTemplateDataDao.get(vspId, version); - - if (Objects.isNull(uploadData) || Objects.isNull(uploadData.getContentData())) { - return Optional.empty(); - } - - TranslatorOutput translatorOutput = getTranslatorOutputForHealing(uploadData); - - if (Objects.isNull(translatorOutput)) { - return Optional.empty(); - } - - try { - serviceModelDao.storeServiceModel(vspId, version, - translatorOutput.getToscaServiceModel()); - } catch (Exception e) { - log.debug("", e); - return Optional.empty(); - } - - mdcDataDebugMessage.debugExitMessage("VSP id", vspId); - return Optional.of(new ImmutablePair<>(translatorOutput.getToscaServiceModel(), translatorOutput - .getNonUnifiedToscaServiceModel())); - } - - private TranslatorOutput getTranslatorOutputForHealing(OrchestrationTemplateEntity uploadData) { - - FileContentHandler fileContentHandler; - try { - fileContentHandler = - CommonUtil.validateAndUploadFileContent( - OnboardingTypesEnum.ZIP, uploadData.getContentData().array()); - return HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler); - } catch (Exception e) { - log.debug("", e); - return null; - } - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/FileDataStructureHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/FileDataStructureHealer.java deleted file mode 100644 index 96b91091ff..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/FileDataStructureHealer.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright © 2016-2017 European Support Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.openecomp.sdc.healing.healers; - -import org.openecomp.core.utilities.file.FileContentHandler; -import org.openecomp.core.utilities.json.JsonUtil; -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.sdc.common.utils.CommonUtil; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.vendorsoftwareproduct.factory.CandidateServiceFactory; -import org.openecomp.sdc.vendorsoftwareproduct.services.utils.CandidateEntityBuilder; -import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.FilesDataStructure; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.HashMap; -import java.util.Optional; - -public class FileDataStructureHealer implements Healer { - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - @Override - public Optional<FilesDataStructure> heal(String vspId, - Version version) throws Exception { - mdcDataDebugMessage.debugEntryMessage(null); - - OrchestrationTemplateCandidateDao candidateDao = - OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface(); - - OrchestrationTemplateCandidateData candidateData = candidateDao.get(vspId, version); - - if (candidateData == null || candidateData.getContentData() == null || - candidateData.getFilesDataStructure() != null) { - return Optional.of(new FilesDataStructure()); - } - - Optional<FilesDataStructure> filesDataStructure = - healFilesDataStructure(vspId, version, candidateData); - - filesDataStructure - .ifPresent(structure -> candidateDao.updateStructure(vspId, version, structure)); - - mdcDataDebugMessage.debugExitMessage(null); - return filesDataStructure; - } - - private Optional<FilesDataStructure> healFilesDataStructure( - String vspId, Version version, OrchestrationTemplateCandidateData candidateData) - throws Exception { - mdcDataDebugMessage.debugEntryMessage(null); - - Optional<FilesDataStructure> healingResult; - byte[] byteContentData = candidateData.getContentData().array(); - FileContentHandler fileContentHandler; - try { - fileContentHandler = - CommonUtil.validateAndUploadFileContent(OnboardingTypesEnum.ZIP, byteContentData); - - String filesDataStructure = - new CandidateEntityBuilder(CandidateServiceFactory.getInstance().createInterface()) - .buildCandidateEntityFromZip(new VspDetails(vspId, version), byteContentData, - fileContentHandler, new HashMap<>()).getFilesDataStructure(); - - healingResult = - Optional.of(JsonUtil.json2Object(filesDataStructure, FilesDataStructure.class)); - } catch (Exception e) { - healingResult = Optional.empty(); - } - - mdcDataDebugMessage.debugExitMessage(null); - return healingResult; - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealer.java deleted file mode 100644 index f3e5f4d568..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealer.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright © 2016-2017 European Support Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.openecomp.sdc.healing.healers; - -import org.apache.commons.collections.MapUtils; -import org.openecomp.core.model.dao.ServiceModelDao; -import org.openecomp.core.model.dao.ServiceModelDaoFactory; -import org.openecomp.core.model.types.ServiceElement; -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.sdc.common.togglz.ToggleableFeature; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.tosca.datatypes.ToscaNodeType; -import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; -import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate; -import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate; -import org.openecomp.sdc.tosca.services.DataModelUtil; -import org.openecomp.sdc.tosca.services.ToscaAnalyzerService; -import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl; -import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesServiceTemplates; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; - -public class ForwarderCapabilityHealer implements Healer { - - private MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - private final ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao; - private static ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl(); - private static final String FORWARDER_CAPABILITY_ID = "Forwarder"; - private static final String UNDERSCORE = "_"; - - public ForwarderCapabilityHealer() { - this.serviceModelDao = - ServiceModelDaoFactory.getInstance().createInterface(); - } - - public ForwarderCapabilityHealer(ServiceModelDao<ToscaServiceModel, ServiceElement> - serviceModelDao, - ToscaAnalyzerService toscaAnalyzerService){ - this.serviceModelDao = serviceModelDao; - this.toscaAnalyzerService = toscaAnalyzerService; - } - - @Override - public Object heal(String vspId, Version version) throws Exception { - if(!ToggleableFeature.FORWARDER_CAPABILITY.isActive()) { - return Optional.empty(); - } - - ToscaServiceModel serviceModel = - serviceModelDao.getServiceModel(vspId, version); - - if (Objects.isNull(serviceModel) - || MapUtils.isEmpty(serviceModel.getServiceTemplates())) { - return Optional.empty(); - } - - addForwarderCapabilityToServiceModel(serviceModel); - serviceModelDao.deleteAll(vspId, version); - serviceModelDao.storeServiceModel(vspId, version, serviceModel); - - return Optional.of(serviceModel); - } - - private void addForwarderCapabilityToServiceModel(ToscaServiceModel serviceModel) { - serviceModel.getServiceTemplates().entrySet().stream().filter(serviceTemplateEntry -> Objects - .nonNull(serviceTemplateEntry.getValue())) - .forEach(serviceTemplateEntry -> handleServiceTemplate(serviceTemplateEntry.getValue(), - serviceModel)); - - handleGlobalTypes(serviceModel); - } - - private void handleGlobalTypes(ToscaServiceModel serviceModel) { - Map<String, ServiceTemplate> globalTypesServiceTemplates = - GlobalTypesServiceTemplates.getGlobalTypesServiceTemplates(OnboardingTypesEnum.ZIP); - - if (MapUtils.isEmpty(globalTypesServiceTemplates)) { - return; - } - - globalTypesServiceTemplates.entrySet() - .stream() - .filter(globalTypesServiceTemplateEntry -> Objects.nonNull - (globalTypesServiceTemplateEntry.getValue())) - .forEach(globalTypesServiceTemplateEntry -> serviceModel.addServiceTemplate - (globalTypesServiceTemplateEntry.getKey(), globalTypesServiceTemplateEntry.getValue())); - } - - private void handleServiceTemplate(ServiceTemplate serviceTemplate, - ToscaServiceModel toscaServiceModel) { - if (Objects.isNull(serviceTemplate.getTopology_template()) - || MapUtils.isEmpty(serviceTemplate.getTopology_template().getNode_templates())) { - return; - } - - Map<String, NodeTemplate> nodeTemplates = - serviceTemplate.getTopology_template().getNode_templates(); - - nodeTemplates.entrySet().stream() - .filter(nodeTemplateEntry -> - toscaAnalyzerService.isTypeOf(nodeTemplateEntry.getValue(), - ToscaNodeType.NATIVE_NETWORK_PORT, serviceTemplate, toscaServiceModel)) - .forEach(nodeTemplateEntry -> - addForwarderToSubstitutionMappings(nodeTemplateEntry.getKey(), serviceTemplate) - ); - } - - private void addForwarderToSubstitutionMappings(String portNodeTemplateId, - ServiceTemplate serviceTemplate) { - if (Objects.isNull(serviceTemplate.getTopology_template()) - || Objects.isNull(serviceTemplate.getTopology_template().getSubstitution_mappings())) { - return; - } - - List<String> substitutionMappingCapabilityList = - Arrays.asList(portNodeTemplateId, FORWARDER_CAPABILITY_ID); - - DataModelUtil.addSubstitutionMappingCapability( - serviceTemplate, - FORWARDER_CAPABILITY_ID + UNDERSCORE + portNodeTemplateId, - substitutionMappingCapabilityList); - - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/HeatToToscaTranslationHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/HeatToToscaTranslationHealer.java deleted file mode 100644 index ddae09fa01..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/HeatToToscaTranslationHealer.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.openecomp.sdc.healing.healers; - - -import org.openecomp.core.model.dao.ServiceModelDao; -import org.openecomp.core.model.dao.ServiceModelDaoFactory; -import org.openecomp.core.model.types.ServiceElement; -import org.openecomp.core.translator.datatypes.TranslatorOutput; -import org.openecomp.core.utilities.file.FileContentHandler; -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.sdc.common.utils.CommonUtil; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; -import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Objects; -import java.util.Optional; - -public class HeatToToscaTranslationHealer implements Healer { - - private static final OrchestrationTemplateDao orchestrationTemplateDao = - OrchestrationTemplateDaoFactory.getInstance().createInterface(); - private static final ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao = - ServiceModelDaoFactory.getInstance().createInterface(); - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - private final Logger log = (Logger) LoggerFactory.getLogger(this.getClass().getName()); - - public HeatToToscaTranslationHealer() { - - } - - @Override - public Object heal(String vspId, Version version) throws Exception { - mdcDataDebugMessage.debugEntryMessage(null);; - - OrchestrationTemplateEntity uploadData = - orchestrationTemplateDao.get(vspId, version); - - if (Objects.isNull(uploadData) || Objects.isNull(uploadData.getContentData())) { - return Optional.empty(); - } - - FileContentHandler fileContentHandler; - TranslatorOutput translatorOutput; - try { - fileContentHandler = - CommonUtil.validateAndUploadFileContent(OnboardingTypesEnum.ZIP, uploadData - .getContentData().array()); - translatorOutput = - HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler); - } catch (Exception e) { - log.debug("", e); - return Optional.empty(); - } - - if (Objects.isNull(translatorOutput)) { - return Optional.empty(); - } else { - - if (translatorOutput.getToscaServiceModel() == null) { - return Optional.empty(); - } - //templateDao.deleteAll(vspId, version); - serviceModelDao.deleteAll(vspId, version); - serviceModelDao.storeServiceModel(vspId, version, translatorOutput.getToscaServiceModel()); - mdcDataDebugMessage.debugExitMessage("VSP id", vspId); - - return translatorOutput; - } - - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/NicDataHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/NicDataHealer.java deleted file mode 100644 index b2ef965286..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/NicDataHealer.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.openecomp.sdc.healing.healers; - - -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.NetworkType; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Collection; - -public class NicDataHealer implements Healer { - /*private static final VendorSoftwareProductDao vendorSoftwareProductDao = - VendorSoftwareProductDaoFactory.getInstance().createInterface();*/ - - private static final NicDao nicDao = NicDaoFactory.getInstance().createInterface(); - - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - public NicDataHealer(){ - - } - @Override - public Object heal(String vspId, Version version) throws Exception { - mdcDataDebugMessage.debugEntryMessage(null, null); - - Collection<NicEntity> nics = nicDao.listByVsp(vspId, version); - for (NicEntity nicEntity : nics) { - Nic nic = nicEntity.getNicCompositionData(); - if (nic != null && nic.getNetworkType()==null) { - nic.setNetworkType(NetworkType.Internal); - nicEntity.setNicCompositionData(nic); - //vendorSoftwareProductDao.updateNic(nicEntity); - nicDao.update(nicEntity); - } - } - return nics; - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/SubEntitiesQuestionnaireHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/SubEntitiesQuestionnaireHealer.java deleted file mode 100644 index a1dd80c307..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/SubEntitiesQuestionnaireHealer.java +++ /dev/null @@ -1,127 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.healing.healers; - -import org.openecomp.core.utilities.json.JsonSchemaDataGenerator; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.CompositionEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; -import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType; -import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Collection; -import java.util.Objects; - -public class SubEntitiesQuestionnaireHealer implements Healer { - private static Version version00 = new Version(0, 0); - private MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - private static ComponentDao componentDao = ComponentDaoFactory.getInstance().createInterface(); - private static NicDao nicDao = NicDaoFactory.getInstance().createInterface(); - private static NetworkDao networkDao = NetworkDaoFactory.getInstance().createInterface(); - - private static String emptyString = ""; - private static String emptyJson = "{}"; - - @Override - public Object heal(String vspId, Version version) throws Exception { - - - mdcDataDebugMessage.debugEntryMessage(null); - - Collection<ComponentEntity> componentEntities = - componentDao.listCompositionAndQuestionnaire(vspId, version); - - networkDao.list(new NetworkEntity(vspId, version, null)); - - Collection<NicEntity> nicEntities = nicDao.listByVsp(vspId, version); - - healCompositionEntityQuestionnaire(componentEntities, version, CompositionEntityType.component); - healCompositionEntityQuestionnaire(nicEntities, version, CompositionEntityType.nic); - - mdcDataDebugMessage.debugExitMessage(null); - return new Object(); - } - - - private void healCompositionEntityQuestionnaire(Collection - compositionEntities, - Version newVersion, CompositionEntityType type) { - - - mdcDataDebugMessage.debugEntryMessage(null); - - for (Object entity : compositionEntities) { - CompositionEntity compositionEntity = (CompositionEntity) entity; - if (isQuestionnaireNeedsToGetHealed(compositionEntity)) { - compositionEntity.setVersion(newVersion); - updateNullQuestionnaire(compositionEntity, type); - } - } - - mdcDataDebugMessage.debugExitMessage(null); - } - - private boolean isQuestionnaireNeedsToGetHealed(CompositionEntity compositionEntity) { - return Objects.isNull(compositionEntity.getQuestionnaireData()) - || emptyString.equals(compositionEntity.getQuestionnaireData()) - || emptyJson.equals(compositionEntity.getQuestionnaireData()); - } - - private void updateNullQuestionnaire(CompositionEntity entity, - CompositionEntityType type) { - - - mdcDataDebugMessage.debugEntryMessage(null); - - entity.setQuestionnaireData( - new JsonSchemaDataGenerator(SchemaGenerator - .generate(SchemaTemplateContext.questionnaire, type, - null)).generateData()); - - switch (type) { - case component: - ComponentEntity component = (ComponentEntity) entity; - componentDao.updateQuestionnaireData(component.getVspId(), component - .getVersion(), component.getId(), component.getQuestionnaireData()); - break; - - case nic: - NicEntity nic = (NicEntity) entity; - nicDao.updateQuestionnaireData(nic.getVspId(), nic.getVersion(), nic.getComponentId(), - nic.getId(), nic.getQuestionnaireData()); - break; - } - mdcDataDebugMessage.debugExitMessage(null); - } - -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ValidationStructureHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ValidationStructureHealer.java deleted file mode 100644 index d172432284..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ValidationStructureHealer.java +++ /dev/null @@ -1,246 +0,0 @@ -package org.openecomp.sdc.healing.healers; - -import org.apache.commons.collections4.CollectionUtils; -import org.openecomp.core.utilities.json.JsonUtil; -import org.openecomp.sdc.datatypes.error.ErrorMessage; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.heat.datatypes.manifest.FileData; -import org.openecomp.sdc.heat.datatypes.structure.Artifact; -import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree; -import org.openecomp.sdc.heat.datatypes.structure.ValidationStructureList; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.HashSet; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; - -/** - * Created by Talio on 7/30/2017. - */ -public class ValidationStructureHealer implements Healer { - - private static final Logger logger = LoggerFactory.getLogger(JsonUtil.class); - private static final OrchestrationTemplateDao orchestrationTemplateDao = - OrchestrationTemplateDaoFactory.getInstance().createInterface(); - - @Override - public Object heal(String vspId, Version version) throws Exception { - - OrchestrationTemplateEntity orchestrationTemplate = - orchestrationTemplateDao.get(vspId, version); - - if (Objects.isNull(orchestrationTemplate.getValidationData()) - || !JsonUtil.isValidJson(orchestrationTemplate.getValidationData())) { - return Optional.empty(); - } - - OldValidationStructureTree oldValidationStructureTree; - try { - oldValidationStructureTree = JsonUtil - .json2Object(orchestrationTemplate.getValidationData(), OldValidationStructureTree.class); - } catch (Exception e) { - logger.debug("", e); - return Optional.empty(); - } - - Optional<HeatStructureTree> newHeatStructureTreeFromOldStructureTree = - createNewHeatStructureTreeFromOldStructureTree( - oldValidationStructureTree.getImportStructure()); - - newHeatStructureTreeFromOldStructureTree.ifPresent(newStructure -> - updateValuesInDb(vspId, version, orchestrationTemplate, - new ValidationStructureList(newStructure))); - - return newHeatStructureTreeFromOldStructureTree; - - } - - private void updateValuesInDb(String vspId, Version version, - OrchestrationTemplateEntity orchestrationTemplate, - ValidationStructureList validationData) { - orchestrationTemplate.setValidationDataStructure(validationData); - orchestrationTemplateDao.update(vspId, version, orchestrationTemplate); - } - - private Optional<HeatStructureTree> createNewHeatStructureTreeFromOldStructureTree( - OldHeatStructureTree oldHeatStructureTree) { - - HeatStructureTree heatStructureTree = new HeatStructureTree(); - - if (Objects.isNull(oldHeatStructureTree)) { - return Optional.empty(); - } - - mapOldHeatStructureTreeValues(oldHeatStructureTree, heatStructureTree); - - Set<OldHeatStructureTree> heat = - oldHeatStructureTree.getHeat() == null ? new HashSet<>() : oldHeatStructureTree.getHeat(); - Set<OldHeatStructureTree> volume = - oldHeatStructureTree.getVolume() == null ? new HashSet<>() - : oldHeatStructureTree.getVolume(); - Set<OldHeatStructureTree> nested = - oldHeatStructureTree.getNested() == null ? new HashSet<>() - : oldHeatStructureTree.getNested(); - Set<OldHeatStructureTree> network = - oldHeatStructureTree.getNetwork() == null ? new HashSet<>() - : oldHeatStructureTree.getNetwork(); - - - heatStructureTree.setHeat(createHeatStructureTreeSetFromOld(heat)); - heatStructureTree.setVolume(createHeatStructureTreeSetFromOld(volume)); - heatStructureTree.setNested(createHeatStructureTreeSetFromOld(nested)); - heatStructureTree.setNetwork(createHeatStructureTreeSetFromOld(network)); - - return Optional.of(heatStructureTree); - } - - private void mapOldHeatStructureTreeValues(OldHeatStructureTree oldHeatStructureTree, - HeatStructureTree heatStructureTree) { - heatStructureTree.setFileName(oldHeatStructureTree.getFileName()); - heatStructureTree.setBase(oldHeatStructureTree.getBase()); - heatStructureTree.setType(oldHeatStructureTree.getType()); - heatStructureTree.setArtifacts(oldHeatStructureTree.getArtifacts()); - heatStructureTree.setErrors(oldHeatStructureTree.getErrors()); - - if (Objects.nonNull(oldHeatStructureTree.getEnv())) { - heatStructureTree.setEnv(new HeatStructureTree(oldHeatStructureTree.getEnv(), false)); - } - } - - private Set<HeatStructureTree> createHeatStructureTreeSetFromOld(Set<OldHeatStructureTree> - oldHeatStructureTreeSet) { - if (CollectionUtils.isEmpty(oldHeatStructureTreeSet)) { - return null; - } - Set<HeatStructureTree> newHeatStructureSet = new HashSet<>(); - - for (OldHeatStructureTree old : oldHeatStructureTreeSet) { - Optional<HeatStructureTree> newHeatStructureTree = - createNewHeatStructureTreeFromOldStructureTree(old); - newHeatStructureTree.ifPresent(newHeatStructureSet::add); - } - - return newHeatStructureSet; - } - - private class OldValidationStructureTree { - private OldHeatStructureTree importStructure; - - OldHeatStructureTree getImportStructure() { - return importStructure; - } - } - - private class OldHeatStructureTree { - private String fileName; - private FileData.Type type; - private Boolean isBase; - private String env; - private List<ErrorMessage> errors; - private Set<OldHeatStructureTree> heat; - private Set<OldHeatStructureTree> volume; - private Set<OldHeatStructureTree> network; - private Set<OldHeatStructureTree> nested; - private Set<OldHeatStructureTree> other; - private Set<Artifact> artifacts; - - public OldHeatStructureTree() { - } - - public String getFileName() { - return fileName; - } - - public void setFileName(String fileName) { - this.fileName = fileName; - } - - public FileData.Type getType() { - return type; - } - - public void setType(FileData.Type type) { - this.type = type; - } - - public Boolean getBase() { - return isBase; - } - - public void setBase(Boolean base) { - isBase = base; - } - - public String getEnv() { - return env; - } - - public void setEnv(String env) { - this.env = env; - } - - public List<ErrorMessage> getErrors() { - return errors; - } - - public void setErrors(List<ErrorMessage> errors) { - this.errors = errors; - } - - public Set<OldHeatStructureTree> getHeat() { - return heat; - } - - public void setHeat(Set<OldHeatStructureTree> heat) { - this.heat = heat; - } - - public Set<OldHeatStructureTree> getVolume() { - return volume; - } - - public void setVolume(Set<OldHeatStructureTree> volume) { - this.volume = volume; - } - - public Set<OldHeatStructureTree> getNetwork() { - return network; - } - - public void setNetwork( - Set<OldHeatStructureTree> network) { - this.network = network; - } - - public Set<OldHeatStructureTree> getNested() { - return nested; - } - - public void setNested(Set<OldHeatStructureTree> nested) { - this.nested = nested; - } - - public Set<OldHeatStructureTree> getOther() { - return other; - } - - public void setOther(Set<OldHeatStructureTree> other) { - this.other = other; - } - - public Set<Artifact> getArtifacts() { - return artifacts; - } - - public void setArtifacts(Set<Artifact> artifacts) { - this.artifacts = artifacts; - } - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java deleted file mode 100644 index a57ac74350..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.openecomp.sdc.healing.healers; - -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDao; -import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDaoFactory; -import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.versioning.VersioningManager; -import org.openecomp.sdc.versioning.VersioningManagerFactory; -import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.sdc.versioning.dao.types.VersionStatus; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Objects; -import java.util.Optional; - -/** - * Created by TALIO on 7/3/2017. - */ -public class VlmVersionHealer implements Healer { - private VersioningManager versioningManager = - VersioningManagerFactory.getInstance().createInterface(); - private static final VendorSoftwareProductInfoDao vspInfoDao = - VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(); - private static final LicenseAgreementDao licenseAgreementDao = - LicenseAgreementDaoFactory.getInstance().createInterface(); - private static final Logger logger = - LoggerFactory.getLogger(VlmVersionHealer.class); - - @Override - public Object heal(String vspId, Version version) throws Exception { - VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, version)); - - if (!Objects.isNull(vspDetails.getVlmVersion())) { - return Optional.empty(); - } - - // get the certified vlm version with the highest number in its name - Optional<Version> certifiedVlmVersion = - versioningManager.list(vspDetails.getVendorId()).stream() - .filter(ver -> VersionStatus.Certified == ver.getStatus()) - .max((o1, o2) -> ((Double) Double.parseDouble(o1.getName())) - .compareTo(Double.parseDouble(o2.getName()))); - if (!certifiedVlmVersion.isPresent()) { - logger.debug("No Vlm was found for Vsp " + vspDetails.getName()); - return Optional.empty(); - } - vspDetails.setVlmVersion(certifiedVlmVersion.get()); - - Collection<LicenseAgreementEntity> licenseAgreements = licenseAgreementDao.list( - new LicenseAgreementEntity(vspDetails.getVendorId(), certifiedVlmVersion.get(), null)); - if (!licenseAgreements.isEmpty()) { - LicenseAgreementEntity licenseAgreement = licenseAgreements.iterator().next(); - vspDetails.setLicenseAgreement(licenseAgreement.getId()); - vspDetails.setFeatureGroups(new ArrayList<>(licenseAgreement.getFeatureGroupIds())); - } - - vspInfoDao.update(vspDetails); - - return vspDetails; - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealer.java deleted file mode 100644 index d5c082bdae..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealer.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.openecomp.sdc.healing.healers; - - -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OnboardingMethod; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.util.Objects; - -public class VspOnboardingMethodHealer implements Healer { - - private static final String DEFAULT_FILE_NAME = "Upload File"; - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - private VendorSoftwareProductInfoDao vendorSoftwareProductInfoDao; - private OrchestrationTemplateDao orchestrationTemplateDao; - private OrchestrationTemplateCandidateDao candidateDao; - - public VspOnboardingMethodHealer(){ - this(VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(), - OrchestrationTemplateDaoFactory.getInstance().createInterface(), - OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface()); - } - - public VspOnboardingMethodHealer(VendorSoftwareProductInfoDao vspInfoDao, - OrchestrationTemplateDao orchestrationTemplateDao, - OrchestrationTemplateCandidateDao candidateDao) { - this.vendorSoftwareProductInfoDao = vspInfoDao; - this.orchestrationTemplateDao = orchestrationTemplateDao; - this.candidateDao = candidateDao; - } - - @Override - public Object heal(String vspId, Version version) throws Exception { - mdcDataDebugMessage.debugEntryMessage(null); - - VspDetails vsp = vendorSoftwareProductInfoDao.get(new VspDetails(vspId, version)); - healOnboardingMethod(vsp); - - if (!OnboardingMethod.Manual.name().equals(vsp.getOnboardingMethod())) { - healOrchestrationTemplateFileName(vspId, version); - healOrchestrationTemplateCandidateFileName(vspId, version); - } - - mdcDataDebugMessage.debugExitMessage(null); - return null; - } - - private void healOnboardingMethod(VspDetails vsp) { - if (Objects.isNull(vsp.getOnboardingMethod()) || "HEAT".equals(vsp.getOnboardingMethod())) { - vsp.setOnboardingMethod(OnboardingMethod.NetworkPackage.name()); - vendorSoftwareProductInfoDao.update(vsp); - } - } - - private void healOrchestrationTemplateFileName(String vspId, Version version) { - OrchestrationTemplateEntity orchestrationTemplate = - orchestrationTemplateDao.get(vspId, version); - - if (orchestrationTemplate == null || orchestrationTemplate.getContentData() == null || - orchestrationTemplate.getFileSuffix() != null) { - return; - } - orchestrationTemplate.setFileSuffix(OnboardingTypesEnum.ZIP.toString()); - orchestrationTemplate.setFileName(DEFAULT_FILE_NAME); - - orchestrationTemplateDao.update(vspId, version, orchestrationTemplate); - } - - private void healOrchestrationTemplateCandidateFileName(String vspId, Version version) { - OrchestrationTemplateCandidateData candidate = candidateDao.get(vspId, version); - - if (candidate == null || candidate.getContentData() == null || - candidate.getFileSuffix() != null) { - return; - } - candidate.setFileSuffix(OnboardingTypesEnum.ZIP.toString()); - candidate.setFileName(DEFAULT_FILE_NAME); - - candidateDao.update(vspId, version, candidate); - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspQuestionnaireHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspQuestionnaireHealer.java deleted file mode 100644 index b45ce30a3e..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspQuestionnaireHealer.java +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.healing.healers; - -import org.openecomp.core.utilities.json.JsonSchemaDataGenerator; -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspQuestionnaireEntity; -import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator; -import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType; -import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.io.IOException; -import java.util.Objects; -import java.util.Optional; - -public class VspQuestionnaireHealer implements Healer { - private static final VendorSoftwareProductInfoDao vspInfoDao = - VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(); - private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); - - private final Logger log = (Logger) LoggerFactory.getLogger(this.getClass().getName()); - - public VspQuestionnaireHealer() { - } - - @Override - public Object heal(String vspId, Version version) throws IOException { - - - mdcDataDebugMessage.debugEntryMessage(null, null); - - Optional<String> questionnaireData = null; - VspQuestionnaireEntity vspQuestionnaireEntity = - vspInfoDao.getQuestionnaire(vspId, version); - - if(Objects.isNull(vspQuestionnaireEntity.getQuestionnaireData())|| "".equals(vspQuestionnaireEntity.getQuestionnaireData())) { - questionnaireData = healQuestionnaire(vspId, version); - } - - mdcDataDebugMessage.debugExitMessage(null, null); - return questionnaireData; - } - - private Optional<String> healQuestionnaire(String vspId, Version version) { - - - mdcDataDebugMessage.debugEntryMessage(null, null); - - String questionnaireData; - String generatedSchema = SchemaGenerator - .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.vsp, null); - try { - questionnaireData = new JsonSchemaDataGenerator(generatedSchema).generateData(); - vspInfoDao.updateQuestionnaireData(vspId, version, questionnaireData); - }catch(Exception e){ - log.debug("", e); - return Optional.empty(); - } - mdcDataDebugMessage.debugExitMessage(null, null); - return Optional.of(questionnaireData); - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealerTest.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealerTest.java deleted file mode 100644 index 688d1d4236..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealerTest.java +++ /dev/null @@ -1,261 +0,0 @@ -package org.openecomp.sdc.healing.healers; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity; -import org.openecomp.sdc.versioning.dao.types.Version; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collection; - -import static org.mockito.Matchers.anyObject; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doReturn; - -public class ComponentQuestionnaireHealerTest { - private static final String HANDLE_NUM_OF_VMS_METHOD = "handleNumOfVm"; - private static final String GENERAL = "general"; - private static final String IMAGE = "image"; - private static final String FORMAT = "format"; - private static final String CPU_OVER_SUBSCRIPTION_RATIO = "CpuOverSubscriptionRatio"; - private static final String MEMORY_RAM = "MemoryRAM"; - private static final String VM_SIZING = "vmSizing"; - private static final String COMPUTE = "compute"; - private static final String NUM_OF_VMS = "numOfVMs"; - private static final String DISK = "disk"; - private static final String BOOT_DISK_SIZE_PER_VM = "bootDiskSizePerVM"; - private static final String EPHEMERAL_DISK_SIZE_PER_VM = "ephemeralDiskSizePerVM"; - private static final Version VERSION = new Version(0, 1); - private static final String DUMMY_VSP_ID = "1495ef442f964cbfb00d82bd54292f89"; - private static final String DUMMY_COMPONENT_ID = "2495ef442f964cbfb00d82bd54292f89"; - private static final String DUMMY_COMPUTE_ID = "3495ef442f964cbfb00d82bd54292f89"; - private static final String DUMMY_IMAGE_ID = "4495ef442f964cbfb00d82bd54292f89"; - private static final String componentQuestionnaireData = "{\"compute\": {" + - "\"guestOS\": {\"bitSize\": 64},\"vmSizing\": {\"IOOperationsPerSec\": \"0\"}," + - "\"numOfVMs\": {\"CpuOverSubscriptionRatio\": \"1:1\",\"MemoryRAM\": \"2 GB\"}}," + - "\"general\": {\"image\": {\"providedBy\": \"AIC\",\"format\":\"qcow2\"," + - "\"bootDiskSizePerVM\": \"100\",\"ephemeralDiskSizePerVM\": \"200\"},\"hypervisor\": {" + - "\"hypervisor\": \"KVM\" } },\"highAvailabilityAndLoadBalancing\": {" + - "\"isComponentMandatory\": \"\",\"highAvailabilityMode\": \"\"},\"storage\": {" + - "\"backup\": {\"backupNIC\": \"\",\"backupType\": \"On Site\" }," + - "\"snapshotBackup\": {\"snapshotFrequency\": \"24\"}},\"network\": {\"networkCapacity\": {" + - "\"protocolWithHighestTrafficProfileAcrossAllNICs\": \"\"}}}"; - - private static final String componentQuestionnaireMissingDiskAttrData = "{\"compute\": {" + - "\"guestOS\": {\"bitSize\": 64},\"vmSizing\": {\"IOOperationsPerSec\": \"0\"},\"numOfVMs\"" + - ": {\"CpuOverSubscriptionRatio\": \"1:1\",\"MemoryRAM\": \"2 GB\"}},\"general\": " + - "{\"image\": {\"providedBy\": \"AIC\",\"format\":\"qcow2\"}," + - "\"hypervisor\": {\"hypervisor\": \"KVM\" } },\"highAvailabilityAndLoadBalancing\": {" + - "\"isComponentMandatory\": \"\",\"highAvailabilityMode\": \"\"},\"storage\": {" + - "\"backup\": {\"backupNIC\": \"\",\"backupType\": \"On Site\" }," + - "\"snapshotBackup\": {\"snapshotFrequency\": \"24\"}},\"network\": {\"networkCapacity\": {" + - "\"protocolWithHighestTrafficProfileAcrossAllNICs\": \"\"}}}"; - - private static final String componentQuestionnaireWithoutVMSizingData = "{\"compute\": {" + - "\"guestOS\": {\"bitSize\": 64},\"numOfVMs\": {\"CpuOverSubscriptionRatio\": \"1:1\"," + - "\"maximum\": \"400\"," + - "\"MemoryRAM\": \"2 GB\"}},\"general\": {\"image\": {\"providedBy\": \"AIC\",\"format\"" + - ":\"qcow2\",\"bootDiskSizePerVM\": \"100\",\"ephemeralDiskSizePerVM\": \"200\"}," + - "\"hypervisor\": {\"hypervisor\": \"KVM\" } },\"highAvailabilityAndLoadBalancing\": {" + - "\"isComponentMandatory\": \"\",\"highAvailabilityMode\": \"\"},\"storage\": {" + - "\"backup\": {\"backupNIC\": \"\",\"backupType\": \"On Site\" }," + - "\"snapshotBackup\": {\"snapshotFrequency\": \"24\"}},\"network\": {\"networkCapacity\": {" + - "\"protocolWithHighestTrafficProfileAcrossAllNICs\": \"\"}}}"; - - private static final String componentQuestionnaireWithoutNumOfVMData = "{\"compute\": " + - "{\"guestOS\": {\"bitSize\": 64}," + - "\"vmSizing\": {\"IOOperationsPerSec\": \"0\"}}," + - "\"general\": {\"image\": {\"providedBy\": \"AIC\",\"format\":\"qcow2\"," + - "\"bootDiskSizePerVM\": \"100\",\"ephemeralDiskSizePerVM\": \"200\"}," + - "\"hypervisor\": {\"hypervisor\": \"KVM\" } },\"highAvailabilityAndLoadBalancing\": {" + - "\"isComponentMandatory\": \"\",\"highAvailabilityMode\": \"\"},\"storage\": {" + - "\"backup\": {\"backupNIC\": \"\",\"backupType\": \"On Site\" }," + - "\"snapshotBackup\": {\"snapshotFrequency\": \"24\"}},\"network\": {\"networkCapacity\": {" + - "\"protocolWithHighestTrafficProfileAcrossAllNICs\": \"\"}}}"; - - private static final String componentQuestionnaireWithMemoryRamData = "{\"compute\": " + - "{\"guestOS\": {\"bitSize\": 64}," + - "\"vmSizing\": {\"IOOperationsPerSec\": \"0\"},\"numOfVMs\": {\"MemoryRAM\": \"2 GB\"}}," + - "\"general\": {\"image\": {\"providedBy\": \"AIC\",\"format\":\"qcow2\"," + - "\"bootDiskSizePerVM\": \"100\",\"ephemeralDiskSizePerVM\": \"200\"}," + - "\"hypervisor\": {\"hypervisor\": \"KVM\" } },\"highAvailabilityAndLoadBalancing\": {" + - "\"isComponentMandatory\": \"\",\"highAvailabilityMode\": \"\"},\"storage\": {" + - "\"backup\": {\"backupNIC\": \"\",\"backupType\": \"On Site\" }," + - "\"snapshotBackup\": {\"snapshotFrequency\": \"24\"}},\"network\": {\"networkCapacity\": {" + - "\"protocolWithHighestTrafficProfileAcrossAllNICs\": \"\"}}}"; - - private static final String componentQuestionnaireWithCPURatioData = "{\"compute\": " + - "{\"guestOS\": {\"bitSize\": 64},\"vmSizing\": {\"IOOperationsPerSec\": " + - "\"0\"},\"numOfVMs\": {\"CpuOverSubscriptionRatio\": " + - "\"1:1\"}},\"general\": {\"image\": {\"providedBy\": \"AIC\",\"format\":\"qcow2\"," + - "\"bootDiskSizePerVM\": \"100\",\"ephemeralDiskSizePerVM\": \"200\"}," + - "\"hypervisor\": {\"hypervisor\": \"KVM\" } },\"highAvailabilityAndLoadBalancing\": {" + - "\"isComponentMandatory\": \"\",\"highAvailabilityMode\": \"\"},\"storage\": {" + - "\"backup\": {\"backupNIC\": \"\",\"backupType\": \"On Site\" }," + - "\"snapshotBackup\": {\"snapshotFrequency\": \"24\"}},\"network\": {\"networkCapacity\": {" + - "\"protocolWithHighestTrafficProfileAcrossAllNICs\": \"\"}}}"; - - private static final JsonParser jsonParser = new JsonParser(); - private ComponentEntity componentEntity; - - @Mock - private ImageDao imageDao; - - @Mock - private ComputeDao computeDao; - - @Mock - private ComponentDao componentDao; - - @InjectMocks - private ComponentQuestionnaireHealer componentQuestionnaireHealer; - - @Before - public void init() throws Exception { - MockitoAnnotations.initMocks(ComponentQuestionnaireHealerTest.this); - } - - @Test - public void healQuestionnaireNullTest() throws Exception { - prepareHealingData(); - componentEntity.setQuestionnaireData(null); - Object returnObject = componentQuestionnaireHealer.heal(DUMMY_VSP_ID, VERSION); - Assert.assertTrue(returnObject instanceof Collection); - Collection<ComponentEntity> componentEntities = (Collection<ComponentEntity>) returnObject; - componentEntities.forEach(componentEntity -> { - Assert.assertNull(componentEntity.getQuestionnaireData()); - }); - } - - @Test - public void healAllCasesTest() throws Exception { - prepareHealingData(); - - Object returnObject = componentQuestionnaireHealer.heal(DUMMY_VSP_ID, VERSION); - Assert.assertTrue(returnObject instanceof Collection); - Collection<ComponentEntity> componentEntities = (Collection<ComponentEntity>) returnObject; - componentEntities.forEach(componentEntity -> { - JsonObject json = (JsonObject) jsonParser.parse(componentEntity.getQuestionnaireData()); - Assert.assertNotNull(json.getAsJsonObject(GENERAL).getAsJsonObject(DISK)); - Assert.assertNotNull(json.getAsJsonObject(GENERAL).getAsJsonObject(DISK) - .getAsJsonPrimitive(BOOT_DISK_SIZE_PER_VM)); - Assert.assertNotNull(json.getAsJsonObject(GENERAL).getAsJsonObject(DISK) - .getAsJsonPrimitive(EPHEMERAL_DISK_SIZE_PER_VM)); - Assert.assertNotNull(json.getAsJsonObject(COMPUTE).getAsJsonObject(NUM_OF_VMS)); - Assert.assertNull(json.getAsJsonObject(COMPUTE).getAsJsonObject(NUM_OF_VMS) - .getAsJsonPrimitive(MEMORY_RAM)); - Assert.assertNull(json.getAsJsonObject(COMPUTE).getAsJsonObject(NUM_OF_VMS) - .getAsJsonPrimitive(CPU_OVER_SUBSCRIPTION_RATIO)); - Assert.assertNull(json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE) - .getAsJsonPrimitive(FORMAT)); - Assert.assertNull(json.getAsJsonObject(COMPUTE).getAsJsonObject(VM_SIZING)); - }); - } - - @Test - public void healDiskAttrMissingTest() throws Exception { - prepareHealingData(); - componentEntity.setQuestionnaireData(componentQuestionnaireMissingDiskAttrData); - Object returnObject = componentQuestionnaireHealer.heal(DUMMY_VSP_ID, VERSION); - Assert.assertTrue(returnObject instanceof Collection); - Collection<ComponentEntity> componentEntities = (Collection<ComponentEntity>) returnObject; - componentEntities.forEach(componentEntity -> { - JsonObject json = (JsonObject) jsonParser.parse(componentEntity.getQuestionnaireData()); - Assert.assertNull(json.getAsJsonObject(COMPUTE).getAsJsonObject(VM_SIZING)); - }); - } - - @Test - public void handleVMSizingWithVMSizingTest() - throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { - JsonObject jsonObject = (JsonObject) jsonParser.parse(componentQuestionnaireWithoutNumOfVMData); - Method method = ComponentQuestionnaireHealer.class.getDeclaredMethod("handleVmSizing", - JsonObject.class); - method.setAccessible(true); - method.invoke(componentQuestionnaireHealer, jsonObject.getAsJsonObject(COMPUTE)); - - Assert.assertNull(jsonObject.getAsJsonObject(COMPUTE).getAsJsonObject(VM_SIZING)); - } - - @Test - public void handleNumOfVMWithoutVMSizingTest() - throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { - JsonObject jsonObject = (JsonObject) jsonParser - .parse(componentQuestionnaireWithoutVMSizingData); - provideAccessToPrivateMethod(HANDLE_NUM_OF_VMS_METHOD, jsonObject); - - Assert.assertNotNull(jsonObject.getAsJsonObject(COMPUTE).getAsJsonObject(NUM_OF_VMS)); - Assert.assertNotNull(jsonObject.getAsJsonObject(COMPUTE).getAsJsonObject(NUM_OF_VMS) - .getAsJsonPrimitive("maximum")); - } - - @Test - public void handleVMSizingWithOnlyMemoryRAMTest() - throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { - JsonObject jsonObject = (JsonObject) jsonParser.parse(componentQuestionnaireWithMemoryRamData); - provideAccessToPrivateMethod(HANDLE_NUM_OF_VMS_METHOD, jsonObject); - - Assert.assertNotNull(jsonObject.getAsJsonObject(COMPUTE).getAsJsonObject(NUM_OF_VMS)); - Assert.assertNull(jsonObject.getAsJsonObject(COMPUTE).getAsJsonObject(NUM_OF_VMS) - .getAsJsonPrimitive(MEMORY_RAM)); - } - - @Test - public void handleVMSizingWithOnlyCpuRatioTest() - throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { - JsonObject jsonObject = (JsonObject) jsonParser.parse(componentQuestionnaireWithCPURatioData); - provideAccessToPrivateMethod(HANDLE_NUM_OF_VMS_METHOD, jsonObject); - - Assert.assertNotNull(jsonObject.getAsJsonObject(COMPUTE).getAsJsonObject(NUM_OF_VMS)); - Assert.assertNull(jsonObject.getAsJsonObject(COMPUTE).getAsJsonObject(NUM_OF_VMS) - .getAsJsonPrimitive(CPU_OVER_SUBSCRIPTION_RATIO)); - } - - private void provideAccessToPrivateMethod(String methodName, JsonObject jsonObject) - throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { - Method method = ComponentQuestionnaireHealer.class - .getDeclaredMethod(methodName, JsonObject.class, JsonObject.class); - method.setAccessible(true); - - method.invoke(componentQuestionnaireHealer, jsonObject.getAsJsonObject(COMPUTE), null); - } - - private void prepareHealingData() { - componentEntity = new ComponentEntity(DUMMY_VSP_ID, VERSION, DUMMY_COMPONENT_ID); - componentEntity.setQuestionnaireData(componentQuestionnaireData); - - Collection<ComponentEntity> componentEntities = new ArrayList<>(); - componentEntities.add(componentEntity); - doReturn(componentEntities).when(componentDao).list(anyObject()); - doReturn(componentEntity).when(componentDao).getQuestionnaireData(DUMMY_VSP_ID, - VERSION, DUMMY_COMPONENT_ID); - - ComputeEntity computeEntity = new ComputeEntity(DUMMY_VSP_ID, VERSION, - DUMMY_COMPONENT_ID, DUMMY_COMPUTE_ID); - Collection<ComputeEntity> computeEntities = new ArrayList<>(); - computeEntities.add(computeEntity); - doReturn(computeEntities).when(computeDao).list(anyObject()); - - ImageEntity imageEntity = new ImageEntity(DUMMY_VSP_ID, VERSION, - DUMMY_COMPONENT_ID, DUMMY_IMAGE_ID); - Collection<ImageEntity> imageEntities = new ArrayList<>(); - imageEntities.add(imageEntity); - doReturn(imageEntities).when(imageDao).list(anyObject()); - - doNothing().when(componentDao).updateQuestionnaireData(anyObject(), - anyObject(), anyObject(), anyObject()); - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealerTest.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealerTest.java deleted file mode 100644 index a07ace683f..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/ForwarderCapabilityHealerTest.java +++ /dev/null @@ -1,147 +0,0 @@ -package org.openecomp.sdc.healing.healers; - -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.core.model.dao.ServiceModelDao; -import org.openecomp.core.model.types.ServiceElement; -import org.openecomp.sdc.common.togglz.ToggleableFeature; -import org.openecomp.sdc.healing.healers.util.TestUtil; -import org.openecomp.sdc.tosca.datatypes.ToscaNodeType; -import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; -import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate; -import org.openecomp.sdc.tosca.services.ToscaAnalyzerService; -import org.openecomp.sdc.versioning.dao.types.Version; -import org.togglz.testing.TestFeatureManager; -import org.togglz.testing.TestFeatureManagerProvider; - -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; - -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Matchers.eq; - -public class ForwarderCapabilityHealerTest { - private static final String vspId = "1"; - private static final Version version = new Version(1, 1); - private static final String IN_SUFFIX = "/in"; - private static final String OUT_SUFFIX = "/out"; - private static final String BASE_DIRECTORY = "/mock/healers/forwarder"; - private static final String ENTRY_DEFINITION_SERVICE_TEMPLATE = "MainServiceTemplate.yaml"; - private static TestFeatureManager manager; - - - @Mock - private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao; - @Mock - private ToscaAnalyzerService toscaAnalyzerService; - @InjectMocks - private ForwarderCapabilityHealer forwarderCapabilityHealer; - - @BeforeClass - public static void enableForwarderFeature(){ - manager = new TestFeatureManager(ToggleableFeature.class); - if (!ToggleableFeature.FORWARDER_CAPABILITY.isActive()) { - manager.enable(ToggleableFeature.FORWARDER_CAPABILITY); - } - } - - @AfterClass - public static void disableForwarderFeature() { - manager.disable(ToggleableFeature.FORWARDER_CAPABILITY); - manager = null; - TestFeatureManagerProvider.setFeatureManager(null); - } - - @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(ForwarderCapabilityHealerTest.this); - } - - - @Test - public void testHealingSubstitutionMappingsNeutronPort() throws Exception { - testForwarderHealer( - "/testSubMappingNeutronPort", "org.openecomp.resource.cp.nodes.heat.network.neutron.Port", true); - } - - @Test - public void testHealingSubstitutionMappingsContrailPort() throws Exception { - testForwarderHealer( - "/testSubMappingContrailPort", "org.openecomp.resource.cp.nodes.heat.network.contrail.Port", true); - } - - @Test - public void testHealingSubstitutionMappingsExtNeutronPort() throws Exception { - testForwarderHealer( - "/testSubMappingExtNeutronPort", "org.openecomp.resource.cp.v2.extNeutronCP", true); - } - - @Test - public void testHealingSubstitutionMappingsExtContrailPort() throws Exception { - testForwarderHealer( - "/testSubMappingExtContrailPort", "org.openecomp.resource.cp.v2.extContrailCP", true); - } - - @Ignore - public void testHealingGlobalServiceTemplates () throws Exception { - testForwarderHealer("/testGlobalServiceTemplates", null, false); - } - - @Test - public void testHealingNoPorts() throws Exception { - testForwarderHealer("/testNoPorts", null, false); - } - - private void testForwarderHealer(String testDirectory, - String portType, - boolean needToTestSubMapping) throws Exception { - - ToscaServiceModel toscaServiceModel = TestUtil.loadToscaServiceModel( - BASE_DIRECTORY + testDirectory + IN_SUFFIX, null, ENTRY_DEFINITION_SERVICE_TEMPLATE); - - Mockito.doReturn(toscaServiceModel) - .when(serviceModelDao).getServiceModel(any(), any()); - - if(needToTestSubMapping) { - Mockito.doReturn(true) - .when(toscaAnalyzerService).isTypeOf( - eq(getMockPortNodeTemplate(portType)), - eq(ToscaNodeType.NATIVE_NETWORK_PORT), - anyObject(), anyObject()); - } - - validateServiceModelAfterHealing(testDirectory); - } - - private void validateServiceModelAfterHealing(String testDirectory) throws Exception { - Optional<ToscaServiceModel> serviceModelObject = - (Optional<ToscaServiceModel>) forwarderCapabilityHealer.heal(vspId, version); - - Assert.assertTrue(serviceModelObject.isPresent()); - TestUtil - .compareToscaServiceModels( - BASE_DIRECTORY + testDirectory + OUT_SUFFIX, serviceModelObject.get()); - } - - private NodeTemplate getMockPortNodeTemplate(String portType) { - NodeTemplate nodeTemplate = new NodeTemplate(); - nodeTemplate.setType(portType); - - Map<String, Object> properties = new HashMap<>(); - properties.put("exCP_naming", "port_pd01_port_exCP_naming"); - nodeTemplate.setProperties(properties); - - return nodeTemplate; - } - -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealerTest.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealerTest.java deleted file mode 100644 index 5584a5fe77..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealerTest.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.openecomp.sdc.healing.healers; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateEntity; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.versioning.dao.types.Version; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.any; - -public class VspOnboardingMethodHealerTest { - private static final String vspId = "1"; - private static final Version version = new Version(1, 1); - - @Mock - private VendorSoftwareProductInfoDao vendorSoftwareProductInfoDao; - @Mock - private OrchestrationTemplateDao orchestrationTemplateDao; - @Mock - private OrchestrationTemplateCandidateDao candidateDao; - @InjectMocks - private VspOnboardingMethodHealer vspOnboardingMethodHealer; - - private OrchestrationTemplateEntity orchestrationTemplateEntity = new OrchestrationTemplateEntity(); - private OrchestrationTemplateCandidateData candidateData = new OrchestrationTemplateCandidateData(); - private static final String NETWORK_PACKAGE = "NetworkPackage"; - private static final String HEAT = "HEAT"; - private static final String MANUAL = "Manual"; - - @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(VspOnboardingMethodHealerTest.this); - } - - @Test - public void checkHealingWithNullOnboarding() throws Exception { - VspDetails vspDetails = initAndExecuteHealer(null); - assertEquals(vspDetails.getOnboardingMethod(), NETWORK_PACKAGE); - } - - @Test - public void checkHealingWithHEATOnboarding() throws Exception { - VspDetails vspDetails = initAndExecuteHealer(HEAT); - assertEquals(vspDetails.getOnboardingMethod(), NETWORK_PACKAGE); - } - - @Test - public void checkHealingWithManualOnboarding() throws Exception { - VspDetails vspDetails = initAndExecuteHealer(MANUAL); - assertEquals(vspDetails.getOnboardingMethod(), MANUAL); - } - - private VspDetails initAndExecuteHealer(String onboardingMethod) throws Exception { - VspDetails vspDetails = new VspDetails(); - vspDetails.setOnboardingMethod(onboardingMethod); - - setMockActions(vspDetails); - vspOnboardingMethodHealer.heal(vspId, version); - return vspDetails; - } - - private void setMockActions(VspDetails vspDetails) { - Mockito.doReturn(vspDetails).when(vendorSoftwareProductInfoDao).get(any()); - Mockito.doReturn(orchestrationTemplateEntity).when(orchestrationTemplateDao).get(any(), any()); - Mockito.doNothing().when(orchestrationTemplateDao).update(any(), any(), any()); - Mockito.doReturn(candidateData).when(candidateDao).get(any(), any()); - Mockito.doNothing().when(candidateDao).update(any(), any(), any()); - } -}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/testHealers/data/TestDescriptionHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/testHealers/data/TestDescriptionHealer.java deleted file mode 100644 index aac1a502ef..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/testHealers/data/TestDescriptionHealer.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.openecomp.sdc.healing.healers.testHealers.data; - -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.versioning.dao.types.Version; - -public class TestDescriptionHealer implements Healer { - - @Override - public Object heal(String vspId, Version version) throws Exception { - VspDetails vspDetails = new VspDetails(vspId, version); - vspDetails.setDescription("This is a data healer"); - - return vspDetails; - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/testHealers/structure/TestNewEntityInVspHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/testHealers/structure/TestNewEntityInVspHealer.java deleted file mode 100644 index 7d71c0319b..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/testHealers/structure/TestNewEntityInVspHealer.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.openecomp.sdc.healing.healers.testHealers.structure; - -import org.openecomp.sdc.healing.interfaces.Healer; -import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; -import org.openecomp.sdc.versioning.dao.types.Version; - -public class TestNewEntityInVspHealer implements Healer { - - @Override - public Object heal(String vspId, Version version) throws Exception { - VspDetails vspDetails = new VspDetails(vspId, version); - vspDetails.setDescription("This is a structure healer"); - - return vspDetails; - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/util/TestUtil.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/util/TestUtil.java deleted file mode 100644 index da44ec422f..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/util/TestUtil.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.openecomp.sdc.healing.healers.util; - -import org.junit.Assert; -import org.openecomp.core.utilities.json.JsonUtil; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; -import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate; -import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil; -import org.openecomp.sdc.tosca.services.ToscaUtil; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.nio.file.NotDirectoryException; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - -public class TestUtil { - private final static Logger log = (Logger) LoggerFactory.getLogger - (TestUtil.class.getName()); - - public static ToscaServiceModel loadToscaServiceModel(String serviceTemplatesPath, - String globalServiceTemplatesPath, - String entryDefinitionServiceTemplate) - throws IOException { - ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil(); - Map<String, ServiceTemplate> serviceTemplates = new HashMap<>(); - if (entryDefinitionServiceTemplate == null) { - entryDefinitionServiceTemplate = "MainServiceTemplate.yaml"; - } - - loadServiceTemplates(serviceTemplatesPath, toscaExtensionYamlUtil, serviceTemplates); - if (globalServiceTemplatesPath != null) { - loadServiceTemplates(globalServiceTemplatesPath, toscaExtensionYamlUtil, serviceTemplates); - } - - return new ToscaServiceModel(null, serviceTemplates, entryDefinitionServiceTemplate); - } - - private static void loadServiceTemplates(String serviceTemplatesPath, - ToscaExtensionYamlUtil toscaExtensionYamlUtil, - Map<String, ServiceTemplate> serviceTemplates) - throws IOException { - URL urlFile = TestUtil.class.getResource(serviceTemplatesPath); - if (urlFile != null) { - File pathFile = new File(urlFile.getFile()); - Collection<File> files = org.apache.commons.io.FileUtils.listFiles(pathFile, null, true); - if (files != null) { - addServiceTemplateFiles(serviceTemplates, files, toscaExtensionYamlUtil); - } else { - throw new NotDirectoryException(serviceTemplatesPath); - } - } else { - throw new NotDirectoryException(serviceTemplatesPath); - } - } - - private static void addServiceTemplateFiles(Map<String, ServiceTemplate> serviceTemplates, - Collection<File> files, - ToscaExtensionYamlUtil toscaExtensionYamlUtil) - throws IOException { - for (File file : files) { - try (InputStream yamlFile = new FileInputStream(file)) { - ServiceTemplate serviceTemplateFromYaml = - toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class); - serviceTemplates.put(ToscaUtil.getServiceTemplateFileName(serviceTemplateFromYaml), serviceTemplateFromYaml); - try { - yamlFile.close(); - } catch (IOException ignore) { - log.debug("",ignore); - } - } catch (FileNotFoundException exception) { - throw exception; - } catch (IOException exception) { - throw exception; - } - } - } - - public static void compareToscaServiceModels(String expectedServiceModelPath, - ToscaServiceModel actualServiceModel) - throws IOException { - ToscaServiceModel expectedServiceModel = - loadToscaServiceModel(expectedServiceModelPath, null, null); - - Map<String, ServiceTemplate> expectedServiceTemplates = - new HashMap<>(expectedServiceModel.getServiceTemplates()); - Map<String, ServiceTemplate> actualServiceTemplates = - new HashMap<>(actualServiceModel.getServiceTemplates()); - - for (Map.Entry<String, ServiceTemplate> expectedServiceTemplateEntry : expectedServiceTemplates.entrySet()) { - String serviceTemplateName = expectedServiceTemplateEntry.getKey(); - ServiceTemplate actualServiceTemplate = - actualServiceTemplates.get(serviceTemplateName); - - Assert.assertNotNull("Missing service template in service model : " + serviceTemplateName, actualServiceTemplate); - org.junit.Assert.assertEquals("Difference in file " + serviceTemplateName, - JsonUtil.object2Json(expectedServiceTemplateEntry.getValue()), - JsonUtil.object2Json(actualServiceTemplate)); - } - } -} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/in/openecomp/capabilities.yml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/in/openecomp/capabilities.yml deleted file mode 100644 index 285d6b28f3..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/in/openecomp/capabilities.yml +++ /dev/null @@ -1,157 +0,0 @@ -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -tosca_definitions_version: tosca_simple_openecomp_1_0 - -metadata: - filename: openecomp/capabilities.yml - version: '1.0' - -imports: -- openecomp_index: - file: _index.yml - -capability_types: - - org.openecomp.capabilities.attachment.DeploymentFlavor: - derived_from: tosca.capabilities.Attachment - description: The Node capability indicates the base capabilities of a TOSCA Node Type. - properties: - DeploymentFlavor: - type: map - description: Deployment flavors instance - required: true - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.DeploymentFlavor - - org.openecomp.capabilities.metric.SnmpTrap: - derived_from: org.openecomp.capabilities.Metric - description: A node type that includes the Metric capability indicates that it can be monitored using snmp trap. - properties: - oid: - description: Object Id of the metric - type: string - status: SUPPORTED - required: true - - org.openecomp.capabilities.AllottedResource: - derived_from: tosca.capabilities.Root - - org.openecomp.capabilities.metric.SnmpPolling: - derived_from: org.openecomp.capabilities.Metric - description: A node type that includes the Metric capability indicates that it can be monitored using snmp polling. - properties: - oid: - description: Object Id of the metric - type: string - status: SUPPORTED - required: true - - org.openecomp.capabilities.metric.Ceilometer: - derived_from: org.openecomp.capabilities.Metric - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - name: - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - type: string - status: SUPPORTED - required: true - - org.openecomp.capabilities.Metric: - derived_from: tosca.capabilities.Endpoint - description: A node type that includes the Metric capability indicates that it can be monitored. - properties: - unit: - description: Unit of the metric value - type: string - status: SUPPORTED - required: true - description: - description: Description of the metric - type: string - status: SUPPORTED - required: false - type: - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - type: string - status: SUPPORTED - required: true - category: - description: Category of the metric, for an example, compute, disk, network, storage and etc. - type: string - status: SUPPORTED - required: false - attributes: - value: - description: Runtime monitored value - type: string - status: SUPPORTED - - tosca.capabilities.nfv.VirtualLinkable: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.Metric: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.VirtualBindable: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.VirtualCompute: - derived_from: tosca.capabilities.Root - properties: - virtual_memory: - type: tosca.datatypes.nfv.VirtualMemory - requested_additional_capabilities: - entry_schema: - type: tosca.datatypes.nfv.RequestedAdditionalCapability - required: false - type: map - virtual_cpu: - type: tosca.datatypes.nfv.VirtualCpu - - - tosca.capabilities.nfv.VirtualStorage: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.Forwarder: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.ext.Compute.Container.Architecture: - derived_from: tosca.capabilities.Root - properties: - num_cpus: - required: false - type: string - flavor_extra_specs: - entry_schema: - type: string - required: false - type: map - mem_size: - required: false - type: string - - tosca.capabilities.nfv.ext.ImageFile: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.ext.LocalAttachment: - derived_from: tosca.capabilities.Root - # New capability types for Port Mirroring - org.openecomp.capabilities.PortMirroring: - derived_from: tosca.capabilities.Root - properties: - connection_point: - type: org.openecomp.datatypes.PortMirroringConnectionPointDescription - required: true
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/in/openecomp/nodes.yml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/in/openecomp/nodes.yml deleted file mode 100644 index 191c121d6d..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/in/openecomp/nodes.yml +++ /dev/null @@ -1,1361 +0,0 @@ -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -tosca_definitions_version: tosca_simple_openecomp_1_0 - -metadata: - filename: openecomp/nodes.yml - version: '1.0' - -imports: -- openecomp_index: - file: _index.yml - -node_types: - - org.openecomp.resource.vl.nodes.network.Network: - derived_from: tosca.nodes.network.Network - properties: - vendor: - type: string - required: false - vl_name: - type: string - required: false - capabilities: - end_point: - type: tosca.capabilities.Endpoint - - org.openecomp.resource.abstract.nodes.AbstractSubstitute: - derived_from: tosca.nodes.Root - properties: - service_template_filter: - description: Substitution Filter - type: org.openecomp.datatypes.substitution.SubstitutionFiltering - status: SUPPORTED - required: true - - org.openecomp.resource.vl.extVL: - derived_from: org.openecomp.resource.vl.nodes.network.Network - description: VF Tenant oam protected network - properties: - network_type: - description: OPENECOMP supported network types. - type: string - required: true - network_role: - description: | - Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network - type: string - required: true - network_scope: - description: | - Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services - type: string - constraints: - - valid_values: - - VF - - SERVICE - - GLOBAL - network_technology: - description: OPENECOMP supported network technology - type: string - required: true - network_ecomp_naming: - type: org.openecomp.datatypes.EcompNaming - required: true - network_homing: - type: org.openecomp.datatypes.EcompHoming - required: true - network_assignments: - type: org.openecomp.datatypes.network.NetworkAssignments - required: true - provider_network: - type: org.openecomp.datatypes.network.ProviderNetwork - required: true - network_flows: - type: org.openecomp.datatypes.network.NetworkFlows - required: false - - - org.openecomp.resource.vfc.nodes.Compute: - derived_from: tosca.nodes.Compute - capabilities: - disk.ephemeral.size: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - instance: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - memory: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.iops: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.read.requests: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - cpu.delta: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.capacity: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.read.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.write.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.latency: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.read.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.usage: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - cpu_util: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.allocation: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.write.requests.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.write.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.latency: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - cpu: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.write.requests: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.write.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.read.requests: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.root.size: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.write.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - vcpus: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.iops: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.usage: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.read.requests.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.write.requests.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.allocation: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.read.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.read.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - memory.usage: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.capacity: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - memory.resident: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.write.requests: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - - org.openecomp.resource.abstract.nodes.DFAbstractSubstitute: - derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute - properties: - license_feature_group_ref: - description: refrence to license feature group - type: string - status: SUPPORTED - required: true - requirements: - - deployment_flavor: - capability: org.openecomp.capabilities.attachment.DeploymentFlavor - node: org.openecomp.resource.nodes.DeploymentFlavor - relationship: org.openecomp.relationships.AttachesTo - occurrences: - - 1 - - UNBOUNDED - - org.openecomp.resource.abstract.nodes.ComplexVFC: - derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute - - org.openecomp.resource.abstract.nodes.VFC: - derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute - properties: - high_availablity: - description: high_availablity - type: string - status: SUPPORTED - required: false - vm_image_name: - description: Master image_name volume id - type: string - status: SUPPORTED - required: true - vm_flavor_name: - description: Master image_name volume id - type: string - status: SUPPORTED - required: true - nfc_naming_code: - description: nfc code for instance naming - type: string - status: SUPPORTED - required: false - nfc_code: - type: string - description: nfc code - status: SUPPORTED - required: false - nfc_function: - type: string - description: nfc function - status: SUPPORTED - required: false - vm_type_tag: - description: vm type based on naming Convention - type: string - status: SUPPORTED - required: false - vfc_naming: - description: vfc naming - type: org.openecomp.datatypes.Naming - status: SUPPORTED - default: false - required: false - min_instances: - description: Minimum number of VFC Instances - type: integer - status: SUPPORTED - default: 0 - required: false - constraints: - - greater_or_equal: 0 - max_instances: - description: Maximum number of VFC Instances - type: integer - status: SUPPORTED - required: false - constraints: - - greater_or_equal: 1 - - org.openecomp.resource.vl.ELine: - derived_from: org.openecomp.resource.vl.nodes.network.Network - capabilities: - linkable: - type: tosca.capabilities.network.Linkable - occurrences: - - 0 - - 2 - - org.openecomp.resource.cp.nodes.network.SubInterface: - derived_from: tosca.nodes.network.Port - - org.openecomp.resource.vl.internalVL: - derived_from: org.openecomp.resource.vl.nodes.network.Network - description: The AT&T internal (VF-level) Virtual Link - - org.openecomp.resource.cp.nodes.network.Port: - derived_from: tosca.nodes.network.Port - properties: - network_role_tag: - description: Must correlate to the set of defined “network-role�? tag identifiers from the associated HEAT template - type: string - required: true - mac_requirements: - description: identifies MAC address assignments to the CP - type: org.openecomp.datatypes.network.MacRequirements - required: false - vlan_requirements: - description: identifies vlan address assignments to the CP - type: list - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - required: false - ip_requirements: - description: identifies IP requirements to the CP - type: list - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - required: true - network_role: - description: identical to VL network_role - type: string - required: false - order: - description: The order of the CP on the compute instance (e.g. eth2). - type: integer - required: false - exCP_naming: - description: CP Name - type: org.openecomp.datatypes.Naming - required: false - subnetpoolid: - description: subnet pool id - type: string - required: false - capabilities: - network.incoming.packets.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.outgoing.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.outgoing.packets.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.outpoing.packets: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.incoming.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.incoming.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.outgoing.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.incoming.packets: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - - org.openecomp.resource.nodes.DeploymentFlavor: - derived_from: tosca.nodes.Root - capabilities: - deployment_flavor: - description: Allowed deployment flavors of an abstract node - type: org.openecomp.capabilities.attachment.DeploymentFlavor - occurrences: - - 1 - - UNBOUNDED - - org.openecomp.resource.cp.extCP: - derived_from: tosca.nodes.Root - description: The AT&T Connection Point base type all other CP derive from - properties: - network_role: - description: identical to VL network_role - type: string - required: true - order: - description: The order of the CP on the compute instance (e.g. eth2). - type: integer - required: true - network_role_tag: - type: string - required: true - mac_requirements: - description: identifies MAC address assignments to the CP - type: org.openecomp.datatypes.network.MacRequirements - required: false - vlan_requirements: - description: identifies vlan address assignments to the CP - type: list - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - required: false - ip_requirements: - description: identifies IP requirements to the CP - type: list - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - required: true - capabilities: - internal_connectionPoint: - type: tosca.capabilities.Node - valid_source_types: - - tosca.nodes.network.Port - requirements: - - virtualLink: - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - - virtualBinding: - capability: tosca.capabilities.network.Bindable - relationship: tosca.relationships.network.BindsTo - - external_virtualLink: - capability: tosca.capabilities.network.Linkable - node: org.openecomp.resource.vl.nodes.network.Network - relationship: tosca.relationships.network.LinksTo - - org.openecomp.resource.vfc.nodes.volume: - derived_from: tosca.nodes.BlockStorage - - ### Node types related to Deployment Flavors - org.openecomp.resource.abstract.nodes.VnfConfiguration: - derived_from: tosca.nodes.Root - description: a container for the available flavors - properties: - allowed_flavors: - description: a collection of all available flavor valuesets - type: map - entry_schema: - type: org.openecomp.datatypes.flavors.DeploymentFlavor - - org.openecomp.resource.abstract.nodes.MultiFlavorVFC: - derived_from: org.openecomp.resource.abstract.nodes.VFC - description: Multi flavored VFC node - properties: - images: - type: map - entry_schema: - type: org.openecomp.datatypes.ImageInfo - required: false - - ## New node types for Port Mirroring - org.openecomp.nodes.ServiceProxy: - derived_from: tosca.nodes.Root - - org.openecomp.nodes.PortMirroringConfiguration: - derived_from: tosca.nodes.Root - requirements: - - source: - capability: org.openecomp.capabilities.PortMirroring - occurrences: - - 1 - - UNBOUNDED - - collector: - capability: org.openecomp.capabilities.PortMirroring - occurrences: - - 1 - - 1 - - org.openecomp.resource.cp.v2.extCP: - derived_from: org.openecomp.resource.cp.nodes.network.Port - description: The SDC External Connection Point base type - capabilities: - port_mirroring: - type: org.openecomp.capabilities.PortMirroring - - org.openecomp.resource.cp.v2.extNeutronCP: - derived_from: org.openecomp.resource.cp.v2.extCP - properties: - port_security_enabled: - type: boolean - description: Flag to enable/disable port security on the network - required: false - status: SUPPORTED - device_id: - type: string - description: Device ID of this port - required: false - status: SUPPORTED - qos_policy: - type: string - description: The name or ID of QoS policy to attach to this network - required: false - status: SUPPORTED - allowed_address_pairs: - type: list - description: Additional MAC/IP address pairs allowed to pass through the port - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.AddressPair - binding:vnic_type: - type: string - description: The vnic type to be bound on the neutron port - required: false - status: SUPPORTED - constraints: - - valid_values: - - macvtap - - direct - - normal - value_specs: - type: map - description: Extra parameters to include in the request - required: false - default: { - } - status: SUPPORTED - entry_schema: - type: string - device_owner: - type: string - description: Name of the network owning the port - required: false - status: SUPPORTED - network: - type: string - description: Network this port belongs to - required: false - status: SUPPORTED - replacement_policy: - type: string - description: Policy on how to respond to a stack-update for this resource - required: false - default: AUTO - status: SUPPORTED - constraints: - - valid_values: - - REPLACE_ALWAYS - - AUTO - security_groups: - type: list - description: List of security group names or IDs - required: false - status: SUPPORTED - entry_schema: - type: string - fixed_ips: - type: list - description: Desired IPs for this port - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.neutron.port.FixedIps - mac_address: - type: string - description: MAC address to give to this port - required: false - status: SUPPORTED - admin_state_up: - type: boolean - description: A boolean value specifying the administrative status of the network - required: false - default: true - status: SUPPORTED - name: - type: string - description: A symbolic name for this port - required: false - status: SUPPORTED - attributes: - tenant_id: - type: string - description: Tenant owning the port - status: SUPPORTED - network_id: - type: string - description: Unique identifier for the network owning the port - status: SUPPORTED - qos_policy_id: - type: string - description: The QoS policy ID attached to this network - status: SUPPORTED - show: - type: string - description: Detailed information about resource - status: SUPPORTED - subnets: - type: list - description: Subnets of this network - status: SUPPORTED - entry_schema: - type: string - status: - type: string - description: The status of the network - status: SUPPORTED - capabilities: - attachment: - type: tosca.capabilities.Attachment - occurrences: - - 1 - - UNBOUNDED - binding: - type: tosca.capabilities.network.Bindable - valid_source_types: - - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface - occurrences: - - 0 - - UNBOUNDED - - org.openecomp.resource.cp.v2.extContrailCP: - derived_from: org.openecomp.resource.cp.v2.extCP - properties: - static_routes: - type: list - description: An ordered list of static routes to be added to this interface - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute - virtual_network: - type: string - description: Virtual Network for this interface - required: true - status: SUPPORTED - static_route: - type: boolean - description: Static route enabled - required: false - default: false - status: SUPPORTED - allowed_address_pairs: - type: list - description: List of allowed address pair for this interface - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.contrail.AddressPair - shared_ip: - type: boolean - description: Shared ip enabled - required: false - default: false - status: SUPPORTED - ip_address: - type: string - description: IP for this interface - required: false - status: SUPPORTED - interface_type: - type: string - description: Interface type - required: true - status: SUPPORTED - constraints: - - valid_values: - - management - - left - - right - - other - attributes: - fq_name: - type: string - description: fq_name - status: SUPPORTED - tosca.nodes.nfv.NS.vEPC_NS: - derived_from: tosca.nodes.nfv.NS - properties: - vendor: - default: ChinaMobile - required: false - type: string - csarVersion: - default: v1.0 - required: false - type: string - name: - default: vEPC_NS - required: false - type: string - csarProvider: - default: ChinaMobile - required: false - type: string - id: - default: vEPC_NS - required: false - type: string - version: - default: v1.0 - required: false - type: string - csarType: - default: NSAR - required: false - type: string - requirements: - - virtualLink: - capability: tosca.capabilities.nfv.VirtualLinkable - occurrences: - - 0 - - UNBOUNDED - - tosca.nodes.nfv.NS.vIMS_NS: - derived_from: tosca.nodes.nfv.NS - properties: - vendor: - default: ChinaMobile - required: false - type: string - csarVersion: - default: v1.0 - required: false - type: string - name: - default: vIMS_NS - required: false - type: string - csarProvider: - default: ChinaMobile - required: false - type: string - id: - default: vIMS_NS - required: false - type: string - version: - default: v1.0 - required: false - type: string - csarType: - default: NSAR - required: false - type: string - requirements: - - virtualLink: - capability: tosca.capabilities.nfv.VirtualLinkable - occurrences: - - 0 - - UNBOUNDED - - tosca.nodes.nfv.NS: - derived_from: tosca.nodes.Root - properties: - vendor: - required: false - type: string - name: - required: false - type: string - id: - required: false - type: string - version: - required: false - type: string - requirements: - - virtualLink: - capability: tosca.capabilities.nfv.VirtualLinkable - occurrences: - - 0 - - UNBOUNDED - - tosca.nodes.nfv.VDU.Compute: - attributes: - private_address: - type: string - public_address: - type: string - networks: - type: string - ports: - type: string - capabilities: - scalable: - type: tosca.capabilities.Scalable - virtual_compute: - type: tosca.capabilities.nfv.VirtualCompute - endpoint: - type: tosca.capabilities.Endpoint.Admin - os: - type: tosca.capabilities.OperatingSystem - virtual_binding: - type: tosca.capabilities.nfv.VirtualBindable - host: - type: tosca.capabilities.Container - binding: - type: tosca.capabilities.network.Bindable - monitoring_parameter: - type: tosca.capabilities.nfv.Metric - derived_from: tosca.nodes.Root - properties: - configurable_properties: - entry_schema: - type: tosca.datatypes.nfv.VnfcConfigurableProperties - type: map - name: - type: string - nfvi_constraints: - entry_schema: - type: string - required: false - type: list - descrption: - type: string - boot_order: - entry_schema: - type: string - required: false - type: list - requirements: - - local_storage: - capability: tosca.capabilities.Attachment - occurrences: - - 0 - - UNBOUNDED - - virtual_storage: - capability: tosca.capabilities.nfv.VirtualStorage - occurrences: - - 0 - - UNBOUNDED - - tosca.nodes.nfv.VDU.VirtualStorage: - capabilities: - virtual_storage: - type: tosca.capabilities.nfv.VirtualStorage - derived_from: tosca.nodes.Root - properties: - id: - type: string - size_of_storage: - type: string - rdma_enabled: - required: false - type: boolean - type_of_storage: - type: string - - tosca.nodes.nfv.VduCpd: - derived_from: tosca.nodes.Root - properties: - virtual_network_interface_requirements: - entry_schema: - type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements - required: false - type: list - role: - constraints: - - valid_values: - - root - - leaf - required: false - type: string - bitrate_requirement: - required: false - type: integer - description: - required: false - type: string - layer_protocol: - constraints: - - valid_values: - - ethernet - - mpls - - odu2 - - ipv4 - - ipv6 - - pseudo_wire - type: string - address_data: - entry_schema: - type: tosca.datatype.nfv.AddressData - required: false - type: list - requirements: - - virtual_binding: - capability: tosca.capabilities.nfv.VirtualBindable - occurrences: - - 0 - - UNBOUNDED - - virtual_link: - capability: tosca.capabilities.nfv.VirtualBindable - occurrences: - - 0 - - UNBOUNDED - tosca.nodes.nfv.ext.ImageFile: - capabilities: - guest_os: - type: tosca.capabilities.nfv.ext.GuestOs - image_fle: - type: tosca.capabilities.nfv.ext.ImageFile - derived_from: tosca.nodes.Root - properties: - file_url: - required: false - type: string - container_type: - required: false - type: string - name: - required: false - type: string - disk_format: - required: false - type: string - version: - required: false - type: string - tosca.nodes.nfv.ext.LocalStorage: - capabilities: - local_attachment: - type: tosca.capabilities.nfv.ext.LocalAttachment - derived_from: tosca.nodes.Root - properties: - size: - required: false - type: string - disk_type: - required: false - type: string - tosca.nodes.nfv.ext.zte.CP: - capabilities: - forwarder: - type: tosca.capabilities.nfv.Forwarder - derived_from: tosca.nodes.Root - properties: - guest_os_mtu: - required: false - type: integer - bandwidth: - required: false - type: integer - interface_name: - required: false - type: string - allowed_address_pairs: - entry_schema: - type: tosca.datatypes.nfv.ext.AddressPairs - required: false - type: list - ip_address: - required: false - type: string - bond: - required: false - type: string - proxiedVNFs: - entry_schema: - type: string - required: false - type: list - sfc_encapsulation: - required: false - type: string - floating_ip_address: - required: false - type: tosca.datatypes.nfv.ext.FloatingIP - service_ip_address: - required: false - type: string - mac_address: - required: false - type: string - proxiedVNFtype: - required: false - type: string - macbond: - required: false - type: string - vnic_type: - required: false - type: string - direction: - required: false - type: string - order: - required: false - type: integer - requirements: - - forwarder: - capability: tosca.capabilities.nfv.Forwarder - occurrences: - - 0 - - UNBOUNDED - - virtualbinding: - capability: tosca.capabilities.nfv.VirtualBindable - occurrences: - - 0 - - UNBOUNDED - - virtualLink: - capability: tosca.capabilities.nfv.VirtualBindable - occurrences: - - 0 - - UNBOUNDED - tosca.nodes.nfv.ext.zte.VDU: - capabilities: - scalable: - type: tosca.capabilities.Scalable - monitoring_parameter: - type: tosca.capabilities.nfv.Metric - nfv_compute: - type: tosca.capabilities.nfv.ext.Compute.Container.Architecture - virtualbinding: - type: tosca.capabilities.nfv.VirtualBindable - derived_from: tosca.nodes.Root - properties: - manual_scale_select_vim: - required: false - type: boolean - vdu_type: - required: false - type: string - watchdog: - required: false - type: tosca.datatypes.nfv.ext.zte.WatchDog - name: - required: false - type: string - local_affinity_antiaffinity_rule: - required: false - type: tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule - support_scaling: - required: false - type: boolean - storage_policy: - required: false - type: string - key_vdu: - required: false - type: boolean - location_info: - required: false - type: tosca.datatypes.nfv.ext.LocationInfo - inject_data_list: - entry_schema: - type: tosca.datatypes.nfv.ext.InjectData - required: false - type: list - requirements: - - guest_os: - capability: tosca.capabilities.nfv.ext.GuestOs - occurrences: - - 0 - - UNBOUNDED - - local_storage: - capability: tosca.capabilities.nfv.ext.LocalAttachment - occurrences: - - 0 - - UNBOUNDED - - volume_storage: - capability: tosca.capabilities.Attachment - occurrences: - - 0 - - UNBOUNDED - - dependency: - capability: tosca.capabilities.Node - occurrences: - - 0 - - UNBOUNDED - tosca.nodes.nfv.ext.zte.VL: - capabilities: - virtual_linkable: - type: tosca.capabilities.nfv.VirtualLinkable - derived_from: tosca.nodes.Root - properties: - segmentation_id: - required: false - type: string - network_name: - required: false - type: string - is_predefined: - required: false - type: boolean - mtu: - required: false - type: integer - dns_nameservers: - entry_schema: - type: string - required: false - type: list - physical_network: - required: false - type: string - dhcp_enabled: - required: false - type: boolean - network_id: - required: false - type: string - host_routes: - entry_schema: - type: tosca.datatypes.nfv.ext.HostRouteInfo - required: false - type: list - ip_version: - required: false - type: integer - vendor: - required: false - type: string - name: - required: false - type: string - start_ip: - required: false - type: string - vlan_transparent: - required: false - type: boolean - cidr: - required: false - type: string - gateway_ip: - required: false - type: string - network_type: - required: false - type: string - end_ip: - required: false - type: string - location_info: - required: false - type: tosca.datatypes.nfv.ext.LocationInfo - tosca.nodes.nfv.ext.zte.VNF: - capabilities: - forwarder: - type: tosca.capabilities.nfv.Forwarder - derived_from: tosca.nodes.Root - properties: - request_reclassification: - required: false - type: boolean - domain_type: - required: false - type: string - nsh_aware: - required: false - type: boolean - plugin_info: - required: false - type: string - adjust_vnf_capacity: - required: false - type: boolean - vnfd_version: - required: false - type: string - vmnumber_overquota_alarm: - required: false - type: boolean - custom_properties: - entry_schema: - type: string - required: false - type: map - version: - required: false - type: string - cross_dc: - required: false - type: boolean - script_info: - required: false - type: string - vendor: - required: false - type: string - is_shared: - required: false - type: boolean - name: - required: false - type: string - vnf_extend_type: - required: false - type: string - id: - required: false - type: string - vnf_type: - required: false - type: string - is_sfc_proxy: - required: false - type: boolean - requirements: - - forwarder: - capability: tosca.capabilities.nfv.Forwarder - occurrences: - - 0 - - UNBOUNDED - - virtualLink: - capability: tosca.capabilities.nfv.VirtualLinkable - occurrences: - - 0 - - UNBOUNDED - - tosca.nodes.nfv.VnfVirtualLinkDesc: - capabilities: - monitoring_parameters: - type: tosca.capabilities.nfv.Metric - virtual_linkable: - type: tosca.capabilities.nfv.VirtualLinkable - derived_from: tosca.nodes.Root - properties: - vl_flavours: - entry_schema: - type: string - type: map - description: - required: false - type: string - test_access: - entry_schema: - type: string - required: false - type: list - connectivity_type: - type: tosca.datatypes.nfv.ConnectivityType - - org.openecomp.nodes.ForwardingPath: - derived_from: tosca.nodes.Root - properties: - target_range: - type: list - entry_schema: - description: Identifier of the reciever port of the VNF or the service - type: integer - protocol: - type: string - description: protocol type that runs on the link - requirements: - - forwarder: - capability: tosca.capabilities.nfv.Forwarder - relationship: org.openecomp.relationships.ForwardsTo - occurrences: [ 0, UNBOUNDED ]
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/in/openecomp/relationships.yml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/in/openecomp/relationships.yml deleted file mode 100644 index 220658a8bf..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/in/openecomp/relationships.yml +++ /dev/null @@ -1,68 +0,0 @@ -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -tosca_definitions_version: tosca_simple_openecomp_1_0 - -metadata: - filename: openecomp/relationships.yml - version: '1.0' - -imports: -- openecomp_index: - file: _index.yml - -relationship_types: - - org.openecomp.relationships.VolumeAttachesTo: - derived_from: org.openecomp.relationships.AttachesTo - description: This type represents an attachment relationship for associating volume - properties: - volume_id: - description: The ID of the volume to be attached - type: string - status: SUPPORTED - required: true - instance_uuid: - description: The ID of the server to which the volume attaches - type: string - status: SUPPORTED - required: true - attributes: - show: - description: Detailed information about resource - type: string - status: SUPPORTED - - org.openecomp.relationships.AttachesTo: - derived_from: tosca.relationships.AttachesTo - description: This type represents an attachment relationship - properties: - location: - description: The relative location (e.g., path on the file system), which provides the root location to address an attached node. - type: string - status: SUPPORTED - required: false - - tosca.relationships.nfv.VDU.AttachedTo: - derived_from: tosca.relationships.Root - properties: - location: - required: false - type: string - - tosca.relationships.nfv.VirtualBindsTo: - derived_from: tosca.relationships.Root - - tosca.relationships.nfv.VirtualLinksTo: - derived_from: tosca.relationships.Root
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/out/openecomp/capabilities.yml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/out/openecomp/capabilities.yml deleted file mode 100644 index 9f0977868e..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/out/openecomp/capabilities.yml +++ /dev/null @@ -1,160 +0,0 @@ -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -tosca_definitions_version: tosca_simple_openecomp_1_0 - -metadata: - filename: openecomp/capabilities.yml - version: '1.0' - -imports: -- openecomp_index: - file: _index.yml - -capability_types: - - org.openecomp.capabilities.attachment.DeploymentFlavor: - derived_from: tosca.capabilities.Attachment - description: The Node capability indicates the base capabilities of a TOSCA Node Type. - properties: - DeploymentFlavor: - type: map - description: Deployment flavors instance - required: true - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.DeploymentFlavor - - org.openecomp.capabilities.metric.SnmpTrap: - derived_from: org.openecomp.capabilities.Metric - description: A node type that includes the Metric capability indicates that it can be monitored using snmp trap. - properties: - oid: - description: Object Id of the metric - type: string - status: SUPPORTED - required: true - - org.openecomp.capabilities.AllottedResource: - derived_from: tosca.capabilities.Root - - org.openecomp.capabilities.metric.SnmpPolling: - derived_from: org.openecomp.capabilities.Metric - description: A node type that includes the Metric capability indicates that it can be monitored using snmp polling. - properties: - oid: - description: Object Id of the metric - type: string - status: SUPPORTED - required: true - - org.openecomp.capabilities.metric.Ceilometer: - derived_from: org.openecomp.capabilities.Metric - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - properties: - name: - description: Ceilometer metric type name to monitor. (The name ceilometer is using) - type: string - status: SUPPORTED - required: true - - org.openecomp.capabilities.Metric: - derived_from: tosca.capabilities.Endpoint - description: A node type that includes the Metric capability indicates that it can be monitored. - properties: - unit: - description: Unit of the metric value - type: string - status: SUPPORTED - required: true - description: - description: Description of the metric - type: string - status: SUPPORTED - required: false - type: - description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. - type: string - status: SUPPORTED - required: true - category: - description: Category of the metric, for an example, compute, disk, network, storage and etc. - type: string - status: SUPPORTED - required: false - attributes: - value: - description: Runtime monitored value - type: string - status: SUPPORTED - - tosca.capabilities.nfv.VirtualLinkable: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.Metric: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.VirtualBindable: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.VirtualCompute: - derived_from: tosca.capabilities.Root - properties: - virtual_memory: - type: tosca.datatypes.nfv.VirtualMemory - requested_additional_capabilities: - entry_schema: - type: tosca.datatypes.nfv.RequestedAdditionalCapability - required: false - type: map - virtual_cpu: - type: tosca.datatypes.nfv.VirtualCpu - - - tosca.capabilities.nfv.VirtualStorage: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.Forwarder: - derived_from: tosca.capabilities.Root - - org.openecomp.capabilities.Forwarder: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.ext.Compute.Container.Architecture: - derived_from: tosca.capabilities.Root - properties: - num_cpus: - required: false - type: string - flavor_extra_specs: - entry_schema: - type: string - required: false - type: map - mem_size: - required: false - type: string - - tosca.capabilities.nfv.ext.ImageFile: - derived_from: tosca.capabilities.Root - - tosca.capabilities.nfv.ext.LocalAttachment: - derived_from: tosca.capabilities.Root - # New capability types for Port Mirroring - org.openecomp.capabilities.PortMirroring: - derived_from: tosca.capabilities.Root - properties: - connection_point: - type: org.openecomp.datatypes.PortMirroringConnectionPointDescription - required: true
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/out/openecomp/nodes.yml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/out/openecomp/nodes.yml deleted file mode 100644 index 951c50bc3f..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/out/openecomp/nodes.yml +++ /dev/null @@ -1,1363 +0,0 @@ -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -tosca_definitions_version: tosca_simple_openecomp_1_0 - -metadata: - filename: openecomp/nodes.yml - version: '1.0' - -imports: -- openecomp_index: - file: _index.yml - -node_types: - - org.openecomp.resource.vl.nodes.network.Network: - derived_from: tosca.nodes.network.Network - properties: - vendor: - type: string - required: false - vl_name: - type: string - required: false - capabilities: - end_point: - type: tosca.capabilities.Endpoint - - org.openecomp.resource.abstract.nodes.AbstractSubstitute: - derived_from: tosca.nodes.Root - properties: - service_template_filter: - description: Substitution Filter - type: org.openecomp.datatypes.substitution.SubstitutionFiltering - status: SUPPORTED - required: true - - org.openecomp.resource.vl.extVL: - derived_from: org.openecomp.resource.vl.nodes.network.Network - description: VF Tenant oam protected network - properties: - network_type: - description: OPENECOMP supported network types. - type: string - required: true - network_role: - description: | - Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network - type: string - required: true - network_scope: - description: | - Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services - type: string - constraints: - - valid_values: - - VF - - SERVICE - - GLOBAL - network_technology: - description: OPENECOMP supported network technology - type: string - required: true - network_ecomp_naming: - type: org.openecomp.datatypes.EcompNaming - required: true - network_homing: - type: org.openecomp.datatypes.EcompHoming - required: true - network_assignments: - type: org.openecomp.datatypes.network.NetworkAssignments - required: true - provider_network: - type: org.openecomp.datatypes.network.ProviderNetwork - required: true - network_flows: - type: org.openecomp.datatypes.network.NetworkFlows - required: false - - - org.openecomp.resource.vfc.nodes.Compute: - derived_from: tosca.nodes.Compute - capabilities: - disk.ephemeral.size: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - instance: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - memory: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.iops: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.read.requests: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - cpu.delta: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.capacity: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.read.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.write.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.latency: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.read.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.usage: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - cpu_util: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.allocation: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.write.requests.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.write.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.latency: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - cpu: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.write.requests: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.write.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.read.requests: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.root.size: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.write.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - vcpus: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.iops: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.usage: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.read.requests.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.write.requests.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.allocation: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.read.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.read.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - memory.usage: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.device.capacity: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - memory.resident: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - disk.write.requests: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - - org.openecomp.resource.abstract.nodes.DFAbstractSubstitute: - derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute - properties: - license_feature_group_ref: - description: refrence to license feature group - type: string - status: SUPPORTED - required: true - requirements: - - deployment_flavor: - capability: org.openecomp.capabilities.attachment.DeploymentFlavor - node: org.openecomp.resource.nodes.DeploymentFlavor - relationship: org.openecomp.relationships.AttachesTo - occurrences: - - 1 - - UNBOUNDED - - org.openecomp.resource.abstract.nodes.ComplexVFC: - derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute - - org.openecomp.resource.abstract.nodes.VFC: - derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute - properties: - high_availablity: - description: high_availablity - type: string - status: SUPPORTED - required: false - vm_image_name: - description: Master image_name volume id - type: string - status: SUPPORTED - required: true - vm_flavor_name: - description: Master image_name volume id - type: string - status: SUPPORTED - required: true - nfc_naming_code: - description: nfc code for instance naming - type: string - status: SUPPORTED - required: false - nfc_code: - type: string - description: nfc code - status: SUPPORTED - required: false - nfc_function: - type: string - description: nfc function - status: SUPPORTED - required: false - vm_type_tag: - description: vm type based on naming Convention - type: string - status: SUPPORTED - required: false - vfc_naming: - description: vfc naming - type: org.openecomp.datatypes.Naming - status: SUPPORTED - default: false - required: false - min_instances: - description: Minimum number of VFC Instances - type: integer - status: SUPPORTED - default: 0 - required: false - constraints: - - greater_or_equal: 0 - max_instances: - description: Maximum number of VFC Instances - type: integer - status: SUPPORTED - required: false - constraints: - - greater_or_equal: 1 - - org.openecomp.resource.vl.ELine: - derived_from: org.openecomp.resource.vl.nodes.network.Network - capabilities: - linkable: - type: tosca.capabilities.network.Linkable - occurrences: - - 0 - - 2 - - org.openecomp.resource.cp.nodes.network.SubInterface: - derived_from: tosca.nodes.network.Port - - org.openecomp.resource.vl.internalVL: - derived_from: org.openecomp.resource.vl.nodes.network.Network - description: The AT&T internal (VF-level) Virtual Link - - org.openecomp.resource.cp.nodes.network.Port: - derived_from: tosca.nodes.network.Port - properties: - network_role_tag: - type: string - required: true - mac_requirements: - description: identifies MAC address assignments to the CP - type: org.openecomp.datatypes.network.MacRequirements - required: false - vlan_requirements: - description: identifies vlan address assignments to the CP - type: list - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - required: false - ip_requirements: - description: identifies IP requirements to the CP - type: list - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - required: true - network_role: - description: identical to VL network_role - type: string - required: false - order: - description: The order of the CP on the compute instance (e.g. eth2). - type: integer - required: false - exCP_naming: - description: CP Name - type: org.openecomp.datatypes.Naming - required: false - subnetpoolid: - description: subnet pool id - type: string - required: false - capabilities: - network.incoming.packets.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.outgoing.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.outgoing.packets.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.outpoing.packets: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.incoming.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.incoming.bytes: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.outgoing.bytes.rate: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - network.incoming.packets: - description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. - type: org.openecomp.capabilities.metric.Ceilometer - occurrences: - - 1 - - UNBOUNDED - forwarder: - type: org.openecomp.capabilities.Forwarder - - org.openecomp.resource.nodes.DeploymentFlavor: - derived_from: tosca.nodes.Root - capabilities: - deployment_flavor: - description: Allowed deployment flavors of an abstract node - type: org.openecomp.capabilities.attachment.DeploymentFlavor - occurrences: - - 1 - - UNBOUNDED - - org.openecomp.resource.cp.extCP: - derived_from: tosca.nodes.Root - description: The AT&T Connection Point base type all other CP derive from - properties: - network_role: - description: identical to VL network_role - type: string - required: true - order: - description: The order of the CP on the compute instance (e.g. eth2). - type: integer - required: true - network_role_tag: - type: string - description: Must correlate to the set of defined network-role tag identifiers from the associated HEAT template - required: true - mac_requirements: - description: identifies MAC address assignments to the CP - type: org.openecomp.datatypes.network.MacRequirements - required: false - vlan_requirements: - description: identifies vlan address assignments to the CP - type: list - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - required: false - ip_requirements: - description: identifies IP requirements to the CP - type: list - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - required: true - capabilities: - internal_connectionPoint: - type: tosca.capabilities.Node - valid_source_types: - - tosca.nodes.network.Port - requirements: - - virtualLink: - capability: tosca.capabilities.network.Linkable - relationship: tosca.relationships.network.LinksTo - - virtualBinding: - capability: tosca.capabilities.network.Bindable - relationship: tosca.relationships.network.BindsTo - - external_virtualLink: - capability: tosca.capabilities.network.Linkable - node: org.openecomp.resource.vl.nodes.network.Network - relationship: tosca.relationships.network.LinksTo - - org.openecomp.resource.vfc.nodes.volume: - derived_from: tosca.nodes.BlockStorage - - ### Node types related to Deployment Flavors - org.openecomp.resource.abstract.nodes.VnfConfiguration: - derived_from: tosca.nodes.Root - description: a container for the available flavors - properties: - allowed_flavors: - description: a collection of all available flavor valuesets - type: map - entry_schema: - type: org.openecomp.datatypes.flavors.DeploymentFlavor - - org.openecomp.resource.abstract.nodes.MultiFlavorVFC: - derived_from: org.openecomp.resource.abstract.nodes.VFC - description: Multi flavored VFC node - properties: - images: - type: map - entry_schema: - type: org.openecomp.datatypes.ImageInfo - required: false - - ## New node types for Port Mirroring - org.openecomp.nodes.ServiceProxy: - derived_from: tosca.nodes.Root - - org.openecomp.nodes.PortMirroringConfiguration: - derived_from: tosca.nodes.Root - requirements: - - source: - capability: org.openecomp.capabilities.PortMirroring - occurrences: - - 1 - - UNBOUNDED - - collector: - capability: org.openecomp.capabilities.PortMirroring - occurrences: - - 1 - - 1 - - org.openecomp.resource.cp.v2.extCP: - derived_from: org.openecomp.resource.cp.nodes.network.Port - description: The SDC External Connection Point base type - capabilities: - port_mirroring: - type: org.openecomp.capabilities.PortMirroring - - org.openecomp.resource.cp.v2.extNeutronCP: - derived_from: org.openecomp.resource.cp.v2.extCP - properties: - port_security_enabled: - type: boolean - description: Flag to enable/disable port security on the network - required: false - status: SUPPORTED - device_id: - type: string - description: Device ID of this port - required: false - status: SUPPORTED - qos_policy: - type: string - description: The name or ID of QoS policy to attach to this network - required: false - status: SUPPORTED - allowed_address_pairs: - type: list - description: Additional MAC/IP address pairs allowed to pass through the port - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.AddressPair - binding:vnic_type: - type: string - description: The vnic type to be bound on the neutron port - required: false - status: SUPPORTED - constraints: - - valid_values: - - macvtap - - direct - - normal - value_specs: - type: map - description: Extra parameters to include in the request - required: false - default: { - } - status: SUPPORTED - entry_schema: - type: string - device_owner: - type: string - description: Name of the network owning the port - required: false - status: SUPPORTED - network: - type: string - description: Network this port belongs to - required: false - status: SUPPORTED - replacement_policy: - type: string - description: Policy on how to respond to a stack-update for this resource - required: false - default: AUTO - status: SUPPORTED - constraints: - - valid_values: - - REPLACE_ALWAYS - - AUTO - security_groups: - type: list - description: List of security group names or IDs - required: false - status: SUPPORTED - entry_schema: - type: string - fixed_ips: - type: list - description: Desired IPs for this port - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.neutron.port.FixedIps - mac_address: - type: string - description: MAC address to give to this port - required: false - status: SUPPORTED - admin_state_up: - type: boolean - description: A boolean value specifying the administrative status of the network - required: false - default: true - status: SUPPORTED - name: - type: string - description: A symbolic name for this port - required: false - status: SUPPORTED - attributes: - tenant_id: - type: string - description: Tenant owning the port - status: SUPPORTED - network_id: - type: string - description: Unique identifier for the network owning the port - status: SUPPORTED - qos_policy_id: - type: string - description: The QoS policy ID attached to this network - status: SUPPORTED - show: - type: string - description: Detailed information about resource - status: SUPPORTED - subnets: - type: list - description: Subnets of this network - status: SUPPORTED - entry_schema: - type: string - status: - type: string - description: The status of the network - status: SUPPORTED - capabilities: - attachment: - type: tosca.capabilities.Attachment - occurrences: - - 1 - - UNBOUNDED - binding: - type: tosca.capabilities.network.Bindable - valid_source_types: - - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface - occurrences: - - 0 - - UNBOUNDED - - org.openecomp.resource.cp.v2.extContrailCP: - derived_from: org.openecomp.resource.cp.v2.extCP - properties: - static_routes: - type: list - description: An ordered list of static routes to be added to this interface - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute - virtual_network: - type: string - description: Virtual Network for this interface - required: true - status: SUPPORTED - static_route: - type: boolean - description: Static route enabled - required: false - default: false - status: SUPPORTED - allowed_address_pairs: - type: list - description: List of allowed address pair for this interface - required: false - status: SUPPORTED - entry_schema: - type: org.openecomp.datatypes.heat.network.contrail.AddressPair - shared_ip: - type: boolean - description: Shared ip enabled - required: false - default: false - status: SUPPORTED - ip_address: - type: string - description: IP for this interface - required: false - status: SUPPORTED - interface_type: - type: string - description: Interface type - required: true - status: SUPPORTED - constraints: - - valid_values: - - management - - left - - right - - other - attributes: - fq_name: - type: string - description: fq_name - status: SUPPORTED - tosca.nodes.nfv.NS.vEPC_NS: - derived_from: tosca.nodes.nfv.NS - properties: - vendor: - default: ChinaMobile - required: false - type: string - csarVersion: - default: v1.0 - required: false - type: string - name: - default: vEPC_NS - required: false - type: string - csarProvider: - default: ChinaMobile - required: false - type: string - id: - default: vEPC_NS - required: false - type: string - version: - default: v1.0 - required: false - type: string - csarType: - default: NSAR - required: false - type: string - requirements: - - virtualLink: - capability: tosca.capabilities.nfv.VirtualLinkable - occurrences: - - 0 - - UNBOUNDED - - tosca.nodes.nfv.NS.vIMS_NS: - derived_from: tosca.nodes.nfv.NS - properties: - vendor: - default: ChinaMobile - required: false - type: string - csarVersion: - default: v1.0 - required: false - type: string - name: - default: vIMS_NS - required: false - type: string - csarProvider: - default: ChinaMobile - required: false - type: string - id: - default: vIMS_NS - required: false - type: string - version: - default: v1.0 - required: false - type: string - csarType: - default: NSAR - required: false - type: string - requirements: - - virtualLink: - capability: tosca.capabilities.nfv.VirtualLinkable - occurrences: - - 0 - - UNBOUNDED - - tosca.nodes.nfv.NS: - derived_from: tosca.nodes.Root - properties: - vendor: - required: false - type: string - name: - required: false - type: string - id: - required: false - type: string - version: - required: false - type: string - requirements: - - virtualLink: - capability: tosca.capabilities.nfv.VirtualLinkable - occurrences: - - 0 - - UNBOUNDED - - tosca.nodes.nfv.VDU.Compute: - attributes: - private_address: - type: string - public_address: - type: string - networks: - type: string - ports: - type: string - capabilities: - scalable: - type: tosca.capabilities.Scalable - virtual_compute: - type: tosca.capabilities.nfv.VirtualCompute - endpoint: - type: tosca.capabilities.Endpoint.Admin - os: - type: tosca.capabilities.OperatingSystem - virtual_binding: - type: tosca.capabilities.nfv.VirtualBindable - host: - type: tosca.capabilities.Container - binding: - type: tosca.capabilities.network.Bindable - monitoring_parameter: - type: tosca.capabilities.nfv.Metric - derived_from: tosca.nodes.Root - properties: - configurable_properties: - entry_schema: - type: tosca.datatypes.nfv.VnfcConfigurableProperties - type: map - name: - type: string - nfvi_constraints: - entry_schema: - type: string - required: false - type: list - descrption: - type: string - boot_order: - entry_schema: - type: string - required: false - type: list - requirements: - - local_storage: - capability: tosca.capabilities.Attachment - occurrences: - - 0 - - UNBOUNDED - - virtual_storage: - capability: tosca.capabilities.nfv.VirtualStorage - occurrences: - - 0 - - UNBOUNDED - - tosca.nodes.nfv.VDU.VirtualStorage: - capabilities: - virtual_storage: - type: tosca.capabilities.nfv.VirtualStorage - derived_from: tosca.nodes.Root - properties: - id: - type: string - size_of_storage: - type: string - rdma_enabled: - required: false - type: boolean - type_of_storage: - type: string - - tosca.nodes.nfv.VduCpd: - derived_from: tosca.nodes.Root - properties: - virtual_network_interface_requirements: - entry_schema: - type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements - required: false - type: list - role: - constraints: - - valid_values: - - root - - leaf - required: false - type: string - bitrate_requirement: - required: false - type: integer - description: - required: false - type: string - layer_protocol: - constraints: - - valid_values: - - ethernet - - mpls - - odu2 - - ipv4 - - ipv6 - - pseudo_wire - type: string - address_data: - entry_schema: - type: tosca.datatype.nfv.AddressData - required: false - type: list - requirements: - - virtual_binding: - capability: tosca.capabilities.nfv.VirtualBindable - occurrences: - - 0 - - UNBOUNDED - - virtual_link: - capability: tosca.capabilities.nfv.VirtualBindable - occurrences: - - 0 - - UNBOUNDED - tosca.nodes.nfv.ext.ImageFile: - capabilities: - guest_os: - type: tosca.capabilities.nfv.ext.GuestOs - image_fle: - type: tosca.capabilities.nfv.ext.ImageFile - derived_from: tosca.nodes.Root - properties: - file_url: - required: false - type: string - container_type: - required: false - type: string - name: - required: false - type: string - disk_format: - required: false - type: string - version: - required: false - type: string - tosca.nodes.nfv.ext.LocalStorage: - capabilities: - local_attachment: - type: tosca.capabilities.nfv.ext.LocalAttachment - derived_from: tosca.nodes.Root - properties: - size: - required: false - type: string - disk_type: - required: false - type: string - tosca.nodes.nfv.ext.zte.CP: - capabilities: - forwarder: - type: tosca.capabilities.nfv.Forwarder - derived_from: tosca.nodes.Root - properties: - guest_os_mtu: - required: false - type: integer - bandwidth: - required: false - type: integer - interface_name: - required: false - type: string - allowed_address_pairs: - entry_schema: - type: tosca.datatypes.nfv.ext.AddressPairs - required: false - type: list - ip_address: - required: false - type: string - bond: - required: false - type: string - proxiedVNFs: - entry_schema: - type: string - required: false - type: list - sfc_encapsulation: - required: false - type: string - floating_ip_address: - required: false - type: tosca.datatypes.nfv.ext.FloatingIP - service_ip_address: - required: false - type: string - mac_address: - required: false - type: string - proxiedVNFtype: - required: false - type: string - macbond: - required: false - type: string - vnic_type: - required: false - type: string - direction: - required: false - type: string - order: - required: false - type: integer - requirements: - - forwarder: - capability: tosca.capabilities.nfv.Forwarder - occurrences: - - 0 - - UNBOUNDED - - virtualbinding: - capability: tosca.capabilities.nfv.VirtualBindable - occurrences: - - 0 - - UNBOUNDED - - virtualLink: - capability: tosca.capabilities.nfv.VirtualBindable - occurrences: - - 0 - - UNBOUNDED - tosca.nodes.nfv.ext.zte.VDU: - capabilities: - scalable: - type: tosca.capabilities.Scalable - monitoring_parameter: - type: tosca.capabilities.nfv.Metric - nfv_compute: - type: tosca.capabilities.nfv.ext.Compute.Container.Architecture - virtualbinding: - type: tosca.capabilities.nfv.VirtualBindable - derived_from: tosca.nodes.Root - properties: - manual_scale_select_vim: - required: false - type: boolean - vdu_type: - required: false - type: string - watchdog: - required: false - type: tosca.datatypes.nfv.ext.zte.WatchDog - name: - required: false - type: string - local_affinity_antiaffinity_rule: - required: false - type: tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule - support_scaling: - required: false - type: boolean - storage_policy: - required: false - type: string - key_vdu: - required: false - type: boolean - location_info: - required: false - type: tosca.datatypes.nfv.ext.LocationInfo - inject_data_list: - entry_schema: - type: tosca.datatypes.nfv.ext.InjectData - required: false - type: list - requirements: - - guest_os: - capability: tosca.capabilities.nfv.ext.GuestOs - occurrences: - - 0 - - UNBOUNDED - - local_storage: - capability: tosca.capabilities.nfv.ext.LocalAttachment - occurrences: - - 0 - - UNBOUNDED - - volume_storage: - capability: tosca.capabilities.Attachment - occurrences: - - 0 - - UNBOUNDED - - dependency: - capability: tosca.capabilities.Node - occurrences: - - 0 - - UNBOUNDED - tosca.nodes.nfv.ext.zte.VL: - capabilities: - virtual_linkable: - type: tosca.capabilities.nfv.VirtualLinkable - derived_from: tosca.nodes.Root - properties: - segmentation_id: - required: false - type: string - network_name: - required: false - type: string - is_predefined: - required: false - type: boolean - mtu: - required: false - type: integer - dns_nameservers: - entry_schema: - type: string - required: false - type: list - physical_network: - required: false - type: string - dhcp_enabled: - required: false - type: boolean - network_id: - required: false - type: string - host_routes: - entry_schema: - type: tosca.datatypes.nfv.ext.HostRouteInfo - required: false - type: list - ip_version: - required: false - type: integer - vendor: - required: false - type: string - name: - required: false - type: string - start_ip: - required: false - type: string - vlan_transparent: - required: false - type: boolean - cidr: - required: false - type: string - gateway_ip: - required: false - type: string - network_type: - required: false - type: string - end_ip: - required: false - type: string - location_info: - required: false - type: tosca.datatypes.nfv.ext.LocationInfo - tosca.nodes.nfv.ext.zte.VNF: - capabilities: - forwarder: - type: tosca.capabilities.nfv.Forwarder - derived_from: tosca.nodes.Root - properties: - request_reclassification: - required: false - type: boolean - domain_type: - required: false - type: string - nsh_aware: - required: false - type: boolean - plugin_info: - required: false - type: string - adjust_vnf_capacity: - required: false - type: boolean - vnfd_version: - required: false - type: string - vmnumber_overquota_alarm: - required: false - type: boolean - custom_properties: - entry_schema: - type: string - required: false - type: map - version: - required: false - type: string - cross_dc: - required: false - type: boolean - script_info: - required: false - type: string - vendor: - required: false - type: string - is_shared: - required: false - type: boolean - name: - required: false - type: string - vnf_extend_type: - required: false - type: string - id: - required: false - type: string - vnf_type: - required: false - type: string - is_sfc_proxy: - required: false - type: boolean - requirements: - - forwarder: - capability: tosca.capabilities.nfv.Forwarder - occurrences: - - 0 - - UNBOUNDED - - virtualLink: - capability: tosca.capabilities.nfv.VirtualLinkable - occurrences: - - 0 - - UNBOUNDED - - tosca.nodes.nfv.VnfVirtualLinkDesc: - capabilities: - monitoring_parameters: - type: tosca.capabilities.nfv.Metric - virtual_linkable: - type: tosca.capabilities.nfv.VirtualLinkable - derived_from: tosca.nodes.Root - properties: - vl_flavours: - entry_schema: - type: string - type: map - description: - required: false - type: string - test_access: - entry_schema: - type: string - required: false - type: list - connectivity_type: - type: tosca.datatypes.nfv.ConnectivityType - - org.openecomp.nodes.ForwardingPath: - derived_from: tosca.nodes.Root - properties: - target_range: - type: list - entry_schema: - description: Identifier of the reciever port of the VNF or the service - type: integer - protocol: - type: string - description: protocol type that runs on the link - requirements: - - forwarder: - capability: tosca.capabilities.nfv.Forwarder - relationship: org.openecomp.relationships.ForwardsTo - occurrences: [ 0, UNBOUNDED ]
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/out/openecomp/relationships.yml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/out/openecomp/relationships.yml deleted file mode 100644 index 5a43b79350..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testGlobalServiceTemplates/out/openecomp/relationships.yml +++ /dev/null @@ -1,72 +0,0 @@ -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -tosca_definitions_version: tosca_simple_openecomp_1_0 - -metadata: - filename: openecomp/relationships.yml - version: '1.0' - -imports: -- openecomp_index: - file: _index.yml - -relationship_types: - - org.openecomp.relationships.VolumeAttachesTo: - derived_from: org.openecomp.relationships.AttachesTo - description: This type represents an attachment relationship for associating volume - properties: - volume_id: - description: The ID of the volume to be attached - type: string - status: SUPPORTED - required: true - instance_uuid: - description: The ID of the server to which the volume attaches - type: string - status: SUPPORTED - required: true - attributes: - show: - description: Detailed information about resource - type: string - status: SUPPORTED - - org.openecomp.relationships.AttachesTo: - derived_from: tosca.relationships.AttachesTo - description: This type represents an attachment relationship - properties: - location: - description: The relative location (e.g., path on the file system), which provides the root location to address an attached node. - type: string - status: SUPPORTED - required: false - - tosca.relationships.nfv.VDU.AttachedTo: - derived_from: tosca.relationships.Root - properties: - location: - required: false - type: string - - tosca.relationships.nfv.VirtualBindsTo: - derived_from: tosca.relationships.Root - - tosca.relationships.nfv.VirtualLinksTo: - derived_from: tosca.relationships.Root - - org.openecomp.relationships.ForwardsTo: - derived_from: tosca.relationships.Root - valid_target_types: [org.openecomp.capabilities.Forwarder]
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testNoPorts/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testNoPorts/in/Nested_pd_serverServiceTemplate.yaml deleted file mode 100644 index 559b4a4db2..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testNoPorts/in/Nested_pd_serverServiceTemplate.yaml +++ /dev/null @@ -1,116 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_0_0 -metadata: - template_name: Nested_pd_server -imports: -- openecomp_heat_index: - file: openecomp-heat/_index.yml -- GlobalSubstitutionTypes: - file: GlobalSubstitutionTypesServiceTemplate.yaml -node_types: - org.openecomp.resource.vfc.nodes.heat.pd_server: - derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server -topology_template: - inputs: - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 - constraints: - - greater_or_equal: 0 - compute_pd_server_availability_zone: - type: list - required: true - entry_schema: - type: string - compute_pd_server_name: - type: list - required: true - entry_schema: - type: string - port_pd01_port_exCP_naming: - type: org.openecomp.datatypes.Naming - required: true - vm_flavor_name: - type: string - required: true - port_pd01_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: true - vm_image_name: - type: string - required: true - port_pd01_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - port_pd01_port_network: - type: list - required: true - entry_schema: - type: string - port_pd01_port_order: - type: integer - required: true - port_pd01_port_subnetpoolid: - type: string - required: true - port_pd01_port_network_role: - type: string - required: true - port_pd01_port_network_role_tag: - type: string - required: true - port_pd01_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - compute_pd_server_user_data_format: - type: list - required: true - entry_schema: - type: string - node_templates: - pd_server: - type: org.openecomp.resource.vfc.nodes.heat.pd_server - properties: - availability_zone: - get_input: - - compute_pd_server_availability_zone - - index_value - flavor: - get_input: vm_flavor_name - image: - get_input: vm_image_name - name: - get_input: - - compute_pd_server_name - - index_value - user_data_format: - get_input: - - compute_pd_server_user_data_format - - index_value - substitution_mappings: - node_type: org.openecomp.resource.abstract.nodes.pd_server - capabilities: - scalable_pd_server: - - pd_server - - scalable - disk.read.bytes.rate_pd_server: - - pd_server - - disk.read.bytes.rate - requirements: - local_storage_pd_server: - - pd_server - - local_storage - link_pd_server_pd01_port: - - pd_server_pd01_port - - link - dependency_pd_server_pd01_port: - - pd_server_pd01_port - - dependency - dependency_pd_server: - - pd_server - - dependency diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testNoPorts/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testNoPorts/out/Nested_pd_serverServiceTemplate.yaml deleted file mode 100644 index 559b4a4db2..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testNoPorts/out/Nested_pd_serverServiceTemplate.yaml +++ /dev/null @@ -1,116 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_0_0 -metadata: - template_name: Nested_pd_server -imports: -- openecomp_heat_index: - file: openecomp-heat/_index.yml -- GlobalSubstitutionTypes: - file: GlobalSubstitutionTypesServiceTemplate.yaml -node_types: - org.openecomp.resource.vfc.nodes.heat.pd_server: - derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server -topology_template: - inputs: - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 - constraints: - - greater_or_equal: 0 - compute_pd_server_availability_zone: - type: list - required: true - entry_schema: - type: string - compute_pd_server_name: - type: list - required: true - entry_schema: - type: string - port_pd01_port_exCP_naming: - type: org.openecomp.datatypes.Naming - required: true - vm_flavor_name: - type: string - required: true - port_pd01_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: true - vm_image_name: - type: string - required: true - port_pd01_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - port_pd01_port_network: - type: list - required: true - entry_schema: - type: string - port_pd01_port_order: - type: integer - required: true - port_pd01_port_subnetpoolid: - type: string - required: true - port_pd01_port_network_role: - type: string - required: true - port_pd01_port_network_role_tag: - type: string - required: true - port_pd01_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - compute_pd_server_user_data_format: - type: list - required: true - entry_schema: - type: string - node_templates: - pd_server: - type: org.openecomp.resource.vfc.nodes.heat.pd_server - properties: - availability_zone: - get_input: - - compute_pd_server_availability_zone - - index_value - flavor: - get_input: vm_flavor_name - image: - get_input: vm_image_name - name: - get_input: - - compute_pd_server_name - - index_value - user_data_format: - get_input: - - compute_pd_server_user_data_format - - index_value - substitution_mappings: - node_type: org.openecomp.resource.abstract.nodes.pd_server - capabilities: - scalable_pd_server: - - pd_server - - scalable - disk.read.bytes.rate_pd_server: - - pd_server - - disk.read.bytes.rate - requirements: - local_storage_pd_server: - - pd_server - - local_storage - link_pd_server_pd01_port: - - pd_server_pd01_port - - link - dependency_pd_server_pd01_port: - - pd_server_pd01_port - - dependency - dependency_pd_server: - - pd_server - - dependency diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingContrailPort/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingContrailPort/in/Nested_pd_serverServiceTemplate.yaml deleted file mode 100644 index e4db9743d6..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingContrailPort/in/Nested_pd_serverServiceTemplate.yaml +++ /dev/null @@ -1,120 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_0_0 -metadata: - template_name: Nested_pd_server -imports: -- openecomp_heat_index: - file: openecomp-heat/_index.yml -- GlobalSubstitutionTypes: - file: GlobalSubstitutionTypesServiceTemplate.yaml -node_types: - org.openecomp.resource.vfc.nodes.heat.pd_server: - derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server -topology_template: - inputs: - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 - constraints: - - greater_or_equal: 0 - compute_pd_server_availability_zone: - type: list - required: true - entry_schema: - type: string - compute_pd_server_name: - type: list - required: true - entry_schema: - type: string - port_pd01_port_exCP_naming: - type: org.openecomp.datatypes.Naming - required: true - vm_flavor_name: - type: string - required: true - port_pd01_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: true - vm_image_name: - type: string - required: true - port_pd01_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - port_pd01_port_network: - type: list - required: true - entry_schema: - type: string - port_pd01_port_order: - type: integer - required: true - port_pd01_port_subnetpoolid: - type: string - required: true - port_pd01_port_network_role: - type: string - required: true - port_pd01_port_network_role_tag: - type: string - required: true - port_pd01_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - compute_pd_server_user_data_format: - type: list - required: true - entry_schema: - type: string - node_templates: - pd_server: - type: org.openecomp.resource.vfc.nodes.heat.pd_server - properties: - availability_zone: - get_input: - - compute_pd_server_availability_zone - - index_value - flavor: - get_input: vm_flavor_name - image: - get_input: vm_image_name - name: - get_input: - - compute_pd_server_name - - index_value - user_data_format: - get_input: - - compute_pd_server_user_data_format - - index_value - pd_server_pd01_port: - type: org.openecomp.resource.cp.nodes.heat.network.contrail.Port - properties: - exCP_naming: port_pd01_port_exCP_naming - substitution_mappings: - node_type: org.openecomp.resource.abstract.nodes.pd_server - capabilities: - scalable_pd_server: - - pd_server - - scalable - disk.read.bytes.rate_pd_server: - - pd_server - - disk.read.bytes.rate - requirements: - local_storage_pd_server: - - pd_server - - local_storage - link_pd_server_pd01_port: - - pd_server_pd01_port - - link - dependency_pd_server_pd01_port: - - pd_server_pd01_port - - dependency - dependency_pd_server: - - pd_server - - dependency diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingContrailPort/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingContrailPort/out/Nested_pd_serverServiceTemplate.yaml deleted file mode 100644 index c813f89ea4..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingContrailPort/out/Nested_pd_serverServiceTemplate.yaml +++ /dev/null @@ -1,123 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_0_0 -metadata: - template_name: Nested_pd_server -imports: -- openecomp_heat_index: - file: openecomp-heat/_index.yml -- GlobalSubstitutionTypes: - file: GlobalSubstitutionTypesServiceTemplate.yaml -node_types: - org.openecomp.resource.vfc.nodes.heat.pd_server: - derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server -topology_template: - inputs: - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 - constraints: - - greater_or_equal: 0 - compute_pd_server_availability_zone: - type: list - required: true - entry_schema: - type: string - compute_pd_server_name: - type: list - required: true - entry_schema: - type: string - port_pd01_port_exCP_naming: - type: org.openecomp.datatypes.Naming - required: true - vm_flavor_name: - type: string - required: true - port_pd01_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: true - vm_image_name: - type: string - required: true - port_pd01_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - port_pd01_port_network: - type: list - required: true - entry_schema: - type: string - port_pd01_port_order: - type: integer - required: true - port_pd01_port_subnetpoolid: - type: string - required: true - port_pd01_port_network_role: - type: string - required: true - port_pd01_port_network_role_tag: - type: string - required: true - port_pd01_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - compute_pd_server_user_data_format: - type: list - required: true - entry_schema: - type: string - node_templates: - pd_server: - type: org.openecomp.resource.vfc.nodes.heat.pd_server - properties: - availability_zone: - get_input: - - compute_pd_server_availability_zone - - index_value - flavor: - get_input: vm_flavor_name - image: - get_input: vm_image_name - name: - get_input: - - compute_pd_server_name - - index_value - user_data_format: - get_input: - - compute_pd_server_user_data_format - - index_value - pd_server_pd01_port: - type: org.openecomp.resource.cp.nodes.heat.network.contrail.Port - properties: - exCP_naming: port_pd01_port_exCP_naming - substitution_mappings: - node_type: org.openecomp.resource.abstract.nodes.pd_server - capabilities: - scalable_pd_server: - - pd_server - - scalable - disk.read.bytes.rate_pd_server: - - pd_server - - disk.read.bytes.rate - Forwarder_pd_server_pd01_port: - - pd_server_pd01_port - - Forwarder - requirements: - local_storage_pd_server: - - pd_server - - local_storage - link_pd_server_pd01_port: - - pd_server_pd01_port - - link - dependency_pd_server_pd01_port: - - pd_server_pd01_port - - dependency - dependency_pd_server: - - pd_server - - dependency diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtContrailPort/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtContrailPort/in/Nested_pd_serverServiceTemplate.yaml deleted file mode 100644 index 0f53985749..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtContrailPort/in/Nested_pd_serverServiceTemplate.yaml +++ /dev/null @@ -1,120 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_0_0 -metadata: - template_name: Nested_pd_server -imports: -- openecomp_heat_index: - file: openecomp-heat/_index.yml -- GlobalSubstitutionTypes: - file: GlobalSubstitutionTypesServiceTemplate.yaml -node_types: - org.openecomp.resource.vfc.nodes.heat.pd_server: - derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server -topology_template: - inputs: - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 - constraints: - - greater_or_equal: 0 - compute_pd_server_availability_zone: - type: list - required: true - entry_schema: - type: string - compute_pd_server_name: - type: list - required: true - entry_schema: - type: string - port_pd01_port_exCP_naming: - type: org.openecomp.datatypes.Naming - required: true - vm_flavor_name: - type: string - required: true - port_pd01_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: true - vm_image_name: - type: string - required: true - port_pd01_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - port_pd01_port_network: - type: list - required: true - entry_schema: - type: string - port_pd01_port_order: - type: integer - required: true - port_pd01_port_subnetpoolid: - type: string - required: true - port_pd01_port_network_role: - type: string - required: true - port_pd01_port_network_role_tag: - type: string - required: true - port_pd01_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - compute_pd_server_user_data_format: - type: list - required: true - entry_schema: - type: string - node_templates: - pd_server: - type: org.openecomp.resource.vfc.nodes.heat.pd_server - properties: - availability_zone: - get_input: - - compute_pd_server_availability_zone - - index_value - flavor: - get_input: vm_flavor_name - image: - get_input: vm_image_name - name: - get_input: - - compute_pd_server_name - - index_value - user_data_format: - get_input: - - compute_pd_server_user_data_format - - index_value - pd_server_pd01_port: - type: org.openecomp.resource.cp.v2.extContrailCP - properties: - exCP_naming: port_pd01_port_exCP_naming - substitution_mappings: - node_type: org.openecomp.resource.abstract.nodes.pd_server - capabilities: - scalable_pd_server: - - pd_server - - scalable - disk.read.bytes.rate_pd_server: - - pd_server - - disk.read.bytes.rate - requirements: - local_storage_pd_server: - - pd_server - - local_storage - link_pd_server_pd01_port: - - pd_server_pd01_port - - link - dependency_pd_server_pd01_port: - - pd_server_pd01_port - - dependency - dependency_pd_server: - - pd_server - - dependency diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtContrailPort/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtContrailPort/out/Nested_pd_serverServiceTemplate.yaml deleted file mode 100644 index 3d7bbcfc4b..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtContrailPort/out/Nested_pd_serverServiceTemplate.yaml +++ /dev/null @@ -1,123 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_0_0 -metadata: - template_name: Nested_pd_server -imports: -- openecomp_heat_index: - file: openecomp-heat/_index.yml -- GlobalSubstitutionTypes: - file: GlobalSubstitutionTypesServiceTemplate.yaml -node_types: - org.openecomp.resource.vfc.nodes.heat.pd_server: - derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server -topology_template: - inputs: - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 - constraints: - - greater_or_equal: 0 - compute_pd_server_availability_zone: - type: list - required: true - entry_schema: - type: string - compute_pd_server_name: - type: list - required: true - entry_schema: - type: string - port_pd01_port_exCP_naming: - type: org.openecomp.datatypes.Naming - required: true - vm_flavor_name: - type: string - required: true - port_pd01_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: true - vm_image_name: - type: string - required: true - port_pd01_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - port_pd01_port_network: - type: list - required: true - entry_schema: - type: string - port_pd01_port_order: - type: integer - required: true - port_pd01_port_subnetpoolid: - type: string - required: true - port_pd01_port_network_role: - type: string - required: true - port_pd01_port_network_role_tag: - type: string - required: true - port_pd01_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - compute_pd_server_user_data_format: - type: list - required: true - entry_schema: - type: string - node_templates: - pd_server: - type: org.openecomp.resource.vfc.nodes.heat.pd_server - properties: - availability_zone: - get_input: - - compute_pd_server_availability_zone - - index_value - flavor: - get_input: vm_flavor_name - image: - get_input: vm_image_name - name: - get_input: - - compute_pd_server_name - - index_value - user_data_format: - get_input: - - compute_pd_server_user_data_format - - index_value - pd_server_pd01_port: - type: org.openecomp.resource.cp.v2.extContrailCP - properties: - exCP_naming: port_pd01_port_exCP_naming - substitution_mappings: - node_type: org.openecomp.resource.abstract.nodes.pd_server - capabilities: - scalable_pd_server: - - pd_server - - scalable - disk.read.bytes.rate_pd_server: - - pd_server - - disk.read.bytes.rate - Forwarder_pd_server_pd01_port: - - pd_server_pd01_port - - Forwarder - requirements: - local_storage_pd_server: - - pd_server - - local_storage - link_pd_server_pd01_port: - - pd_server_pd01_port - - link - dependency_pd_server_pd01_port: - - pd_server_pd01_port - - dependency - dependency_pd_server: - - pd_server - - dependency diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtNeutronPort/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtNeutronPort/in/Nested_pd_serverServiceTemplate.yaml deleted file mode 100644 index 3edb079fc0..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtNeutronPort/in/Nested_pd_serverServiceTemplate.yaml +++ /dev/null @@ -1,120 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_0_0 -metadata: - template_name: Nested_pd_server -imports: -- openecomp_heat_index: - file: openecomp-heat/_index.yml -- GlobalSubstitutionTypes: - file: GlobalSubstitutionTypesServiceTemplate.yaml -node_types: - org.openecomp.resource.vfc.nodes.heat.pd_server: - derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server -topology_template: - inputs: - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 - constraints: - - greater_or_equal: 0 - compute_pd_server_availability_zone: - type: list - required: true - entry_schema: - type: string - compute_pd_server_name: - type: list - required: true - entry_schema: - type: string - port_pd01_port_exCP_naming: - type: org.openecomp.datatypes.Naming - required: true - vm_flavor_name: - type: string - required: true - port_pd01_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: true - vm_image_name: - type: string - required: true - port_pd01_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - port_pd01_port_network: - type: list - required: true - entry_schema: - type: string - port_pd01_port_order: - type: integer - required: true - port_pd01_port_subnetpoolid: - type: string - required: true - port_pd01_port_network_role: - type: string - required: true - port_pd01_port_network_role_tag: - type: string - required: true - port_pd01_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - compute_pd_server_user_data_format: - type: list - required: true - entry_schema: - type: string - node_templates: - pd_server: - type: org.openecomp.resource.vfc.nodes.heat.pd_server - properties: - availability_zone: - get_input: - - compute_pd_server_availability_zone - - index_value - flavor: - get_input: vm_flavor_name - image: - get_input: vm_image_name - name: - get_input: - - compute_pd_server_name - - index_value - user_data_format: - get_input: - - compute_pd_server_user_data_format - - index_value - pd_server_pd01_port: - type: org.openecomp.resource.cp.v2.extNeutronCP - properties: - exCP_naming: port_pd01_port_exCP_naming - substitution_mappings: - node_type: org.openecomp.resource.abstract.nodes.pd_server - capabilities: - scalable_pd_server: - - pd_server - - scalable - disk.read.bytes.rate_pd_server: - - pd_server - - disk.read.bytes.rate - requirements: - local_storage_pd_server: - - pd_server - - local_storage - link_pd_server_pd01_port: - - pd_server_pd01_port - - link - dependency_pd_server_pd01_port: - - pd_server_pd01_port - - dependency - dependency_pd_server: - - pd_server - - dependency diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtNeutronPort/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtNeutronPort/out/Nested_pd_serverServiceTemplate.yaml deleted file mode 100644 index 69dba32cf8..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingExtNeutronPort/out/Nested_pd_serverServiceTemplate.yaml +++ /dev/null @@ -1,123 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_0_0 -metadata: - template_name: Nested_pd_server -imports: -- openecomp_heat_index: - file: openecomp-heat/_index.yml -- GlobalSubstitutionTypes: - file: GlobalSubstitutionTypesServiceTemplate.yaml -node_types: - org.openecomp.resource.vfc.nodes.heat.pd_server: - derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server -topology_template: - inputs: - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 - constraints: - - greater_or_equal: 0 - compute_pd_server_availability_zone: - type: list - required: true - entry_schema: - type: string - compute_pd_server_name: - type: list - required: true - entry_schema: - type: string - port_pd01_port_exCP_naming: - type: org.openecomp.datatypes.Naming - required: true - vm_flavor_name: - type: string - required: true - port_pd01_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: true - vm_image_name: - type: string - required: true - port_pd01_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - port_pd01_port_network: - type: list - required: true - entry_schema: - type: string - port_pd01_port_order: - type: integer - required: true - port_pd01_port_subnetpoolid: - type: string - required: true - port_pd01_port_network_role: - type: string - required: true - port_pd01_port_network_role_tag: - type: string - required: true - port_pd01_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - compute_pd_server_user_data_format: - type: list - required: true - entry_schema: - type: string - node_templates: - pd_server: - type: org.openecomp.resource.vfc.nodes.heat.pd_server - properties: - availability_zone: - get_input: - - compute_pd_server_availability_zone - - index_value - flavor: - get_input: vm_flavor_name - image: - get_input: vm_image_name - name: - get_input: - - compute_pd_server_name - - index_value - user_data_format: - get_input: - - compute_pd_server_user_data_format - - index_value - pd_server_pd01_port: - type: org.openecomp.resource.cp.v2.extNeutronCP - properties: - exCP_naming: port_pd01_port_exCP_naming - substitution_mappings: - node_type: org.openecomp.resource.abstract.nodes.pd_server - capabilities: - scalable_pd_server: - - pd_server - - scalable - disk.read.bytes.rate_pd_server: - - pd_server - - disk.read.bytes.rate - Forwarder_pd_server_pd01_port: - - pd_server_pd01_port - - Forwarder - requirements: - local_storage_pd_server: - - pd_server - - local_storage - link_pd_server_pd01_port: - - pd_server_pd01_port - - link - dependency_pd_server_pd01_port: - - pd_server_pd01_port - - dependency - dependency_pd_server: - - pd_server - - dependency diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingNeutronPort/in/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingNeutronPort/in/Nested_pd_serverServiceTemplate.yaml deleted file mode 100644 index 3883be3042..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingNeutronPort/in/Nested_pd_serverServiceTemplate.yaml +++ /dev/null @@ -1,120 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_0_0 -metadata: - template_name: Nested_pd_server -imports: -- openecomp_heat_index: - file: openecomp-heat/_index.yml -- GlobalSubstitutionTypes: - file: GlobalSubstitutionTypesServiceTemplate.yaml -node_types: - org.openecomp.resource.vfc.nodes.heat.pd_server: - derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server -topology_template: - inputs: - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 - constraints: - - greater_or_equal: 0 - compute_pd_server_availability_zone: - type: list - required: true - entry_schema: - type: string - compute_pd_server_name: - type: list - required: true - entry_schema: - type: string - port_pd01_port_exCP_naming: - type: org.openecomp.datatypes.Naming - required: true - vm_flavor_name: - type: string - required: true - port_pd01_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: true - vm_image_name: - type: string - required: true - port_pd01_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - port_pd01_port_network: - type: list - required: true - entry_schema: - type: string - port_pd01_port_order: - type: integer - required: true - port_pd01_port_subnetpoolid: - type: string - required: true - port_pd01_port_network_role: - type: string - required: true - port_pd01_port_network_role_tag: - type: string - required: true - port_pd01_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - compute_pd_server_user_data_format: - type: list - required: true - entry_schema: - type: string - node_templates: - pd_server: - type: org.openecomp.resource.vfc.nodes.heat.pd_server - properties: - availability_zone: - get_input: - - compute_pd_server_availability_zone - - index_value - flavor: - get_input: vm_flavor_name - image: - get_input: vm_image_name - name: - get_input: - - compute_pd_server_name - - index_value - user_data_format: - get_input: - - compute_pd_server_user_data_format - - index_value - pd_server_pd01_port: - type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port - properties: - exCP_naming: port_pd01_port_exCP_naming - substitution_mappings: - node_type: org.openecomp.resource.abstract.nodes.pd_server - capabilities: - scalable_pd_server: - - pd_server - - scalable - disk.read.bytes.rate_pd_server: - - pd_server - - disk.read.bytes.rate - requirements: - local_storage_pd_server: - - pd_server - - local_storage - link_pd_server_pd01_port: - - pd_server_pd01_port - - link - dependency_pd_server_pd01_port: - - pd_server_pd01_port - - dependency - dependency_pd_server: - - pd_server - - dependency diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingNeutronPort/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingNeutronPort/out/Nested_pd_serverServiceTemplate.yaml deleted file mode 100644 index 9b980466ee..0000000000 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/resources/mock/healers/forwarder/testSubMappingNeutronPort/out/Nested_pd_serverServiceTemplate.yaml +++ /dev/null @@ -1,123 +0,0 @@ -tosca_definitions_version: tosca_simple_yaml_1_0_0 -metadata: - template_name: Nested_pd_server -imports: -- openecomp_heat_index: - file: openecomp-heat/_index.yml -- GlobalSubstitutionTypes: - file: GlobalSubstitutionTypesServiceTemplate.yaml -node_types: - org.openecomp.resource.vfc.nodes.heat.pd_server: - derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server -topology_template: - inputs: - index_value: - type: integer - description: Index value of this substitution service template runtime instance - required: false - default: 0 - constraints: - - greater_or_equal: 0 - compute_pd_server_availability_zone: - type: list - required: true - entry_schema: - type: string - compute_pd_server_name: - type: list - required: true - entry_schema: - type: string - port_pd01_port_exCP_naming: - type: org.openecomp.datatypes.Naming - required: true - vm_flavor_name: - type: string - required: true - port_pd01_port_mac_requirements: - type: org.openecomp.datatypes.network.MacRequirements - required: true - vm_image_name: - type: string - required: true - port_pd01_port_ip_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.IpRequirements - port_pd01_port_network: - type: list - required: true - entry_schema: - type: string - port_pd01_port_order: - type: integer - required: true - port_pd01_port_subnetpoolid: - type: string - required: true - port_pd01_port_network_role: - type: string - required: true - port_pd01_port_network_role_tag: - type: string - required: true - port_pd01_port_vlan_requirements: - type: list - required: true - entry_schema: - type: org.openecomp.datatypes.network.VlanRequirements - compute_pd_server_user_data_format: - type: list - required: true - entry_schema: - type: string - node_templates: - pd_server: - type: org.openecomp.resource.vfc.nodes.heat.pd_server - properties: - availability_zone: - get_input: - - compute_pd_server_availability_zone - - index_value - flavor: - get_input: vm_flavor_name - image: - get_input: vm_image_name - name: - get_input: - - compute_pd_server_name - - index_value - user_data_format: - get_input: - - compute_pd_server_user_data_format - - index_value - pd_server_pd01_port: - type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port - properties: - exCP_naming: port_pd01_port_exCP_naming - substitution_mappings: - node_type: org.openecomp.resource.abstract.nodes.pd_server - capabilities: - scalable_pd_server: - - pd_server - - scalable - disk.read.bytes.rate_pd_server: - - pd_server - - disk.read.bytes.rate - Forwarder_pd_server_pd01_port: - - pd_server_pd01_port - - Forwarder - requirements: - local_storage_pd_server: - - pd_server - - local_storage - link_pd_server_pd01_port: - - pd_server_pd01_port - - link - dependency_pd_server_pd01_port: - - pd_server_pd01_port - - dependency - dependency_pd_server: - - pd_server - - dependency |