aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/pom.xml54
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/ConfigurationUtils.java11
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerFactory.java4
-rw-r--r--common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/TaskFactory.java4
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiArtifactGenerator.java2
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/dependency-reduced-pom.xml1
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java8
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/SampleJUnitTest.java424
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml50
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml223
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml536
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml12
-rw-r--r--dox-sequence-diagram-ui/package.json5
-rw-r--r--dox-sequence-diagram-ui/webpack.config.js2
-rw-r--r--onboarding/pom.xml1
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/src/main/java/org/openecomp/sdcrests/errors/DefaultExceptionMapper.java18
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/EntitlementPoolLimitsImpl.java62
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseKeyGroupLimitsImpl.java50
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml4
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/ComponentProcesses.java19
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/OrchestrationTemplateCandidate.java3
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapUploadFileResponseToUploadFileResponseDto.java2
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapValidationResponseToDto.java32
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapVersionedVendorSoftwareProductInfoToVspDetailsDto.java2
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapVspDescriptionDtoToVspDetails.java2
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java30
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java35
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/OnboardingMethod.java2
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/UploadFileResponseDto.java17
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDescriptionDto.java18
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDetailsDto.java16
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java468
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/C36B4399FCB942B19D493F839CFA10E2_0_1_General_6E70545C4854465D82DBDB9BCBEF0FB51
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml27
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/OrchestrationTemplateCandidateManager.java5
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java35
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java141
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerImpl.java5
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java427
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java420
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/BaseOrchestrationTemplateHandler.java100
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateCSARHandler.java154
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateFileHandler.java12
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateZipHandler.java55
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUploadFactory.java29
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUtil.java282
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/CSARConstants.java18
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/OnboardingManifest.java141
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationProcessFactory.java64
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessCsarHandler.java133
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessHandler.java12
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessZipHandler.java184
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ConfigConstants.java6
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/UploadFileResponse.java19
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ValidationResponse.java47
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/config-orchestration.json26
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/orchestrationConfiguration.json3
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ImagesTest.java72
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/QuestionnaireDataServiceTest.java5
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImplTest.java62
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImplTest.java8
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java426
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/UploadFileTest.java139
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/csar/ManifestParsingTest.java58
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/csar/UploadCSARFileTest.java221
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmock.csarbin0 -> 4211 bytes
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockBrokenMF.csarbin0 -> 4022 bytes
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail1.csarbin0 -> 4372 bytes
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail2.csarbin0 -> 3263 bytes
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail3.csarbin0 -> 4521 bytes
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca1.mf11
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca2.mf18
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca3.mf7
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca4.mf12
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/ValidTosca.mf15
-rw-r--r--openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java14
-rw-r--r--openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/utils/CommonUtil.java39
-rw-r--r--openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/utils/SdcCommon.java1
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/src/main/java/org/openecomp/core/factory/FactoriesConfigImpl.java16
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/util/UniqueValueUtil.java8
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/util/CassandraUtils.java7
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileUtils.java84
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/orchestration/OnboardingTypesEnum.java32
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonSchemaDataGeneratorTest.java23
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java21
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerImpl.java12
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml7
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java5
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/FileDataStructureHealer.java3
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/HeatToToscaTranslationHealer.java3
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealer.java32
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealerTest.java70
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/pom.xml27
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManager.java79
-rw-r--r--openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/messages/AuditMessages.java1
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ExternalArtifactEnricher.java8
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricher.java11
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java5
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricherTest.java6
-rw-r--r--openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml5
-rw-r--r--openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/src/main/java/org/openecomp/sdc/model/impl/zusammen/ServiceModelDaoZusammenImpl.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-api/pom.xml37
-rw-r--r--openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-core/pom.xml42
-rw-r--r--openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-impl/pom.xml30
-rw-r--r--openecomp-be/lib/openecomp-sdc-orchestration-lib/pom.xml23
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java19
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java147
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java174
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java1651
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java9
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/GlobalSubstitutionTypesServiceTemplate.yaml1305
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/MainServiceTemplate.yaml22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml1380
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/MainServiceTemplate.yaml46
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/GlobalSubstitutionTypesServiceTemplate.yaml1274
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/MainServiceTemplate.yaml22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml6169
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/MainServiceTemplate.yaml44
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/MainServiceTemplate.yaml36
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested1ServiceTemplate.yaml25
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested2ServiceTemplate.yaml59
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/nested2ServiceTemplate.yaml25
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/MainServiceTemplate.yaml48
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/nested1ServiceTemplate.yaml25
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml892
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/MainServiceTemplate.yaml23
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml596
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml46
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml175
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/MANIFEST.json35
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf.env406
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf.yaml2045
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf_volume.env19
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf_volume.yaml105
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/nested_cscf.yaml183
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/nested_tdcore.yaml213
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/out/GlobalSubstitutionTypesServiceTemplate.yaml6627
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/out/MainServiceTemplate.yaml3172
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested3ServiceTemplate.yaml25
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml1180
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/MainServiceTemplate.yaml260
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/MainServiceTemplate.yaml71
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneCompute/out/MainServiceTemplate.yaml23
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneComputeDiffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml602
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneComputeDiffPortType/out/MainServiceTemplate.yaml23
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedPointingToThreeDiffNestedFilesSameComputeType/out/MainServiceTemplate.yaml71
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/MainServiceTemplate.yaml69
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml596
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out/MainServiceTemplate.yaml46
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePort/out/GlobalSubstitutionTypesServiceTemplate.yaml87
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml97
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOut/out/GlobalSubstitutionTypesServiceTemplate.yaml93
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOutComputePort/out/GlobalSubstitutionTypesServiceTemplate.yaml75
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml93
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml87
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/MainServiceTemplate.yaml10
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOneGroup/out/GlobalSubstitutionTypesServiceTemplate.yaml93
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOutputParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml97
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePort/out/GlobalSubstitutionTypesServiceTemplate.yaml172
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/GlobalSubstitutionTypesServiceTemplate.yaml180
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml123
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeAndServerGroup/out/GlobalSubstitutionTypesServiceTemplate.yaml99
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml147
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml135
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out/MainServiceTemplate.yaml6
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml147
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml135
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out/MainServiceTemplate.yaml6
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out/GlobalSubstitutionTypesServiceTemplate.yaml717
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out/MainServiceTemplate.yaml29
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwosameporttypes/out/GlobalSubstitutionTypesServiceTemplate.yaml123
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml133
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/GlobalSubstitutionTypesServiceTemplate.yaml419
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/out/GlobalSubstitutionTypesServiceTemplate.yaml130
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttOut/out/GlobalSubstitutionTypesServiceTemplate.yaml123
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortTypesAndGetAttOut/out/GlobalSubstitutionTypesServiceTemplate.yaml123
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml133
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml133
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml291
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/MainServiceTemplate.yaml14
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithPorts/out/GlobalSubstitutionTypesServiceTemplate.yaml237
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/GlobalSubstitutionTypesServiceTemplate.yaml81
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml123
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/GlobalSubstitutionTypesServiceTemplate.yaml168
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoSetsOfSingle/out/GlobalSubstitutionTypesServiceTemplate.yaml160
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/in/MainServiceTemplate.yaml6
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out/SubstitutionServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LimitEntity.java65
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/healing/HealingService.java3
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/healing/impl/SimpleHealingServiceImpl.java21
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java118
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/util/VendorLicenseArtifactsServiceUtils.java83
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/type/VspDetails.java22
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/filedatastructuremodule/CandidateService.java9
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/utils/CandidateEntityBuilder.java8
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/impl/zusammen/VendorSoftwareProductInfoDaoZusammenImpl.java10
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImpl.java152
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/CandidateServiceImpl.java33
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/pom.xml35
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ServiceTemplateReaderService.java24
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ToscaConverter.java12
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/api/ToscaConverterManager.java9
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/Constants.java45
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/CsarFileTypes.java9
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/factory/ToscaConverterFactory.java12
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/resources/factoryConfiguration.json3
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/pom.xml51
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/GlobalSubstitutionServiceTemplate.java87
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterImpl.java451
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterManagerImpl.java49
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/factory/ToscaConverterFactoryImpl.java12
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/services/ServiceTemplateReaderServiceImpl.java76
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/resources/ToscaConverters.json3
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConverterImplTest.java193
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java56
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/csar/vCSCF.csarbin0 -> 8186 bytes
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Artifacts/checksum.lst1
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Artifacts/csar.meta3
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml60
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.mf12
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.yaml551
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/TOSCA-Metadata/TOSCA.meta135
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/out/MainServiceTemplate.yaml546
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/pom.xml23
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaServiceModel.java18
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java3
-rw-r--r--openecomp-be/lib/pom.xml2
-rw-r--r--openecomp-be/pom.xml22
-rw-r--r--openecomp-be/tools/install/database/schemaTemplates/composition/deployment.ftl69
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/resources/zusammenMainTool.sh30
-rw-r--r--openecomp-ui/package.json7
-rw-r--r--openecomp-ui/pom.xml81
-rw-r--r--openecomp-ui/resources/scss/components/_submitErrorResponse.scss2
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductAttachmentPage.scss34
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductLandingPage.scss42
-rw-r--r--openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx10
-rw-r--r--openecomp-ui/src/nfvo-utils/i18n/i18n.js18
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js18
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx21
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js24
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js22
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js10
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js2
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachments.js12
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsActionHelper.js26
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsConstants.js6
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsReducer.js25
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsView.jsx42
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationReducer.js11
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationView.jsx6
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationView.jsx8
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js5
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx41
-rw-r--r--openecomp-ui/test/softwareProduct/attachments/SoftwareProductAttachmentsView.test.js5
-rw-r--r--sdc-os-chef/sdc-backend/Dockerfile35
-rw-r--r--sdc-os-chef/sdc-cassandra/Dockerfile27
-rw-r--r--sdc-os-chef/sdc-elasticsearch/Dockerfile22
-rw-r--r--sdc-os-chef/sdc-frontend/Dockerfile28
-rw-r--r--sdc-os-chef/sdc-kibana/Dockerfile19
-rw-r--r--sdc-os-chef/sdc-sanity/Dockerfile24
260 files changed, 39152 insertions, 5789 deletions
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/pom.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/pom.xml
index 609e8abdf7..186a50849a 100644
--- a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/pom.xml
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/pom.xml
@@ -24,62 +24,62 @@
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${jackson.version}</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
<version>2.1</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>${commons.beanutils.version}</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>com.github.adejanovski</groupId>
<artifactId>cassandra-jdbc-wrapper</artifactId>
<version>${cassandra.version}</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.0</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>net.sf.corn</groupId>
<artifactId>corn-cps</artifactId>
<version>1.1.7</version>
<exclusions>
- <exclusion>
- <groupId>com.sun</groupId>
- <artifactId>tools</artifactId>
- </exclusion>
- </exclusions>
+ <exclusion>
+ <groupId>com.sun</groupId>
+ <artifactId>tools</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
- <groupId>com.virtlink.commons</groupId>
- <artifactId>commons-configuration2-jackson</artifactId>
- <version>0.6.1</version>
- </dependency>
+ <groupId>com.virtlink.commons</groupId>
+ <artifactId>commons-configuration2-jackson</artifactId>
+ <version>0.6.1</version>
+ </dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
@@ -95,16 +95,16 @@
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-ext</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
<dependency>
- <groupId>org.openecomp.sdc.common</groupId>
- <artifactId>openecomp-configuration-management-api</artifactId>
- <version>1.1.0-SNAPSHOT</version>
- </dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-ext</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-api</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/ConfigurationUtils.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/ConfigurationUtils.java
index c0a1e0ceb0..889efea3da 100644
--- a/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/ConfigurationUtils.java
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-core/src/main/java/org/openecomp/config/ConfigurationUtils.java
@@ -584,14 +584,19 @@ public class ConfigurationUtils {
stmt.setString(i + 1, params[i]);
}
}
- ResultSet rs = stmt.executeQuery();
- while (rs.next()) {
- coll.add(rs.getString(1));
+
+ try (ResultSet rs = stmt.executeQuery()) {
+
+ while (rs.next()) {
+ coll.add(rs.getString(1));
+ }
}
+
} catch (Exception exception) {
//exception.printStackTrace();
return null;
}
+
return coll;
}
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerFactory.java b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerFactory.java
index e6f4aa3707..fdc874ee54 100644
--- a/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerFactory.java
+++ b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/LoggerFactory.java
@@ -41,8 +41,8 @@ public class LoggerFactory extends BaseFactory {
try {
service = locateService(LoggerCreationService.class);
- } catch (Throwable throwable) {
- new RuntimeException("Failed to instantiate logger factory", throwable).printStackTrace();
+ } catch (Exception e) {
+ new RuntimeException("Failed to instantiate logger factory", e).printStackTrace();
// use the no-op service to prevent recursion in case of an attempt to log an exception as a
// result of a logger initialization error
service = new NoOpLoggerCreationService();
diff --git a/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/TaskFactory.java b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/TaskFactory.java
index b358a77573..30bc7372c6 100644
--- a/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/TaskFactory.java
+++ b/common/openecomp-logging-lib/openecomp-logging-api/src/main/java/org/openecomp/core/logging/api/context/TaskFactory.java
@@ -46,8 +46,8 @@ public class TaskFactory extends BaseFactory {
try {
service = locateService(ContextPropagationService.class);
- } catch (Throwable throwable) {
- error = new RuntimeException("Failed to instantiate task factory", throwable);
+ } catch (Exception e) {
+ error = new RuntimeException("Failed to instantiate task factory", e);
}
SERVICE = service;
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiArtifactGenerator.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiArtifactGenerator.java
index c8e7be53d6..f4dd4d476c 100644
--- a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiArtifactGenerator.java
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/src/main/java/org/openecomp/sdc/generator/aai/AaiArtifactGenerator.java
@@ -163,7 +163,7 @@ public class AaiArtifactGenerator implements ArtifactGenerator {
log.warn(
"Additional tosca file found with resource version id : "
+ resourceUuId);
- break;
+ continue;
}
//update resource version with version from service tosca
String resourceVersion = resourcesVersion.get(resourceUuId);
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/dependency-reduced-pom.xml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/dependency-reduced-pom.xml
index a71fe7feaa..5a51961846 100644
--- a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/dependency-reduced-pom.xml
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/dependency-reduced-pom.xml
@@ -7,7 +7,6 @@
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
- <groupId>org.openecomp.sdc.common</groupId>
<artifactId>openecomp-sdc-artifact-generator-test</artifactId>
<build>
<plugins>
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java
index 85479e31da..ced8acbb80 100644
--- a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/ArtifactGenerationServiceTest.java
@@ -34,6 +34,7 @@ import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.ByteArrayInputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.Properties;
@@ -604,8 +605,11 @@ public class ArtifactGenerationServiceTest {
try {
jaxbContext = JAXBContext.newInstance(Model.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
- InputStream aaiModelStream = new ByteArrayInputStream(aaiModel.getBytes());
- return (Model) unmarshaller.unmarshal(aaiModelStream);
+
+ try (InputStream aaiModelStream = new ByteArrayInputStream(aaiModel.getBytes())) {
+ return (Model) unmarshaller.unmarshal(aaiModelStream);
+ } catch (IOException ignored) { /* ignore */ }
+
} catch (JAXBException e) {
e.printStackTrace();
}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/SampleJUnitTest.java b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/SampleJUnitTest.java
index bbbb74dc05..6d44a37a92 100644
--- a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/SampleJUnitTest.java
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-test/src/main/java/org/openecomp/sdc/generator/SampleJUnitTest.java
@@ -67,7 +67,10 @@ public class SampleJUnitTest extends TestCase {
if (configLocation != null) {
File file = new File(configLocation);
if (file.exists()) {
- properties.load(new FileInputStream(file));
+
+ try (InputStream fis = new FileInputStream(file)) {
+ properties.load(fis);
+ }
}
}
}
@@ -86,12 +89,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationSingleVFSingleVFModule() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_SingleVFVFMod.yml");
- readPayload(inputArtifacts, fis1, "vf_vmme_template_SingleVFVFMod.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_SingleVFVFMod.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_SingleVFVFMod.yml");
- readPayload(inputArtifacts, fis2, "service_vmme_template_SingleVFVFMod.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_SingleVFVFMod.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -124,8 +124,7 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationMissingVFInServiceTOSCA() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_MissingVFInServiceTOSCA.yml");
- readPayload(inputArtifacts, fis2, "service_vmme_template_MissingVFInServiceTOSCA.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_MissingVFInServiceTOSCA.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -156,12 +155,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationVerifySameStaticWidgetsForAllServices() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_SameWidgets1.yml");
- readPayload(inputArtifacts, fis1, "vf_vmme_template_SameWidgets1.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_SameWidgets1.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_SameWidget1.yml");
- readPayload(inputArtifacts, fis2, "service_vmme_template_SameWidget1.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_SameWidget1.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -179,11 +175,9 @@ public class SampleJUnitTest extends TestCase {
List<Artifact> inputArtifacts2 = new ArrayList();
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_SameWidgets2.yml");
- readPayload(inputArtifacts2, fis3, "vf_vmme_template_SameWidgets2.yml");
+ readPayloadFromResource(inputArtifacts2, "vf_vmme_template_SameWidgets2.yml");
- InputStream fis4 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_SameWidget2.yml");
- readPayload(inputArtifacts2, fis4, "service_vmme_template_SameWidget2.yml");
+ readPayloadFromResource(inputArtifacts2, "service_vmme_template_SameWidget2.yml");
ArtifactGenerationServiceImpl obj2 = new ArtifactGenerationServiceImpl();
GenerationData data2 = obj2.generateArtifact(inputArtifacts2, generatorConfig,additionalParams);
@@ -230,12 +224,9 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
String[] resourceFileList = {};
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_MulVFVFMod.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_MulVFVFMod.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_MulVFVFMod.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_MulVFVFMod.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_MulVFVFMod.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_MulVFVFMod.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -268,17 +259,13 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/CMAUI_VF.yaml");
- readPayload(inputArtifacts,fis3, "CMAUI_VF.yaml");
+ readPayloadFromResource(inputArtifacts, "CMAUI_VF.yaml");
- InputStream fis4 = SampleJUnitTest.class.getResourceAsStream("/ECA_OAM_VF.yaml");
- readPayload(inputArtifacts,fis4, "ECA_OAM_VF.yaml");
+ readPayloadFromResource(inputArtifacts, "ECA_OAM_VF.yaml");
- InputStream fis5 = SampleJUnitTest.class.getResourceAsStream("/MMSC_Sevice_07_25_16.yaml");
- readPayload(inputArtifacts,fis5, "MMSC_Sevice_07_25_16.yaml");
+ readPayloadFromResource(inputArtifacts, "MMSC_Sevice_07_25_16.yaml");
- InputStream fis6 = SampleJUnitTest.class.getResourceAsStream("/MMSC_VF.yaml");
- readPayload(inputArtifacts,fis6, "MMSC_VF.yaml");
+ readPayloadFromResource(inputArtifacts, "MMSC_VF.yaml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -310,12 +297,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationDupVFUUID() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_DupVFUUID.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_DupVFUUID.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_DupVFUUID.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_DupVFUUID.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_DupVFUUID.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_DupVFUUID.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -346,12 +330,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationDupVFModUUID() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_DupVFModUUID.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_DupVFModUUID.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_DupVFModUUID.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_DupVFModUUID.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_DupVFModUUID.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_DupVFModUUID.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -381,12 +362,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationVerifyVFModWithoutVNFC() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyVFModWithoutVNFC.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_VerifyVFModWithoutVNFC.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyVFModWithoutVNFC.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyVFModWithoutVNFC.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_VerifyVFModWithoutVNFC.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyVFModWithoutVNFC.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -416,12 +394,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationVerifyVFModWithInvalidMember() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyVFModWithInvalidNo.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_VerifyVFModWithInvalidNo.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyVFModWithInvalidNo.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyVFModWithInvalidNo.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_VerifyVFModWithInvalidNo.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyVFModWithInvalidNo.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -451,12 +426,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationNullFields() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_NullFields.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_NullFields.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_NullFields.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_NullFields.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_NullFields.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_NullFields.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
@@ -477,17 +449,13 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/CMAUI_VFInvalidFormat.yaml");
- readPayload(inputArtifacts,fis3, "CMAUI_VFInvalidFormat.yaml");
+ readPayloadFromResource(inputArtifacts, "CMAUI_VFInvalidFormat.yaml");
- InputStream fis4 = SampleJUnitTest.class.getResourceAsStream("/ECA_OAM_VFInvalidFormat.yaml");
- readPayload(inputArtifacts,fis4, "ECA_OAM_VFInvalidFormat.yaml");
+ readPayloadFromResource(inputArtifacts, "ECA_OAM_VFInvalidFormat.yaml");
- InputStream fis5 = SampleJUnitTest.class.getResourceAsStream("/MMSC_Sevice_07_25_16InvalidFormat.yaml");
- readPayload(inputArtifacts,fis5, "MMSC_Sevice_07_25_16InvalidFormat.yaml");
+ readPayloadFromResource(inputArtifacts, "MMSC_Sevice_07_25_16InvalidFormat.yaml");
- InputStream fis6 = SampleJUnitTest.class.getResourceAsStream("/MMSC_VFInvalidFormat.yaml");
- readPayload(inputArtifacts,fis6, "MMSC_VFInvalidFormat.yaml");
+ readPayloadFromResource(inputArtifacts, "MMSC_VFInvalidFormat.yaml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
@@ -507,12 +475,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationMulComp() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_MulComp.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_MulComp.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_MulComp.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_MulComp.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_MulComp.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_MulComp.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -543,15 +508,11 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_Orphan.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_Orphan.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_Orphan.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_Orphan.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_Orphan.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_Orphan.yml");
- InputStream fis4 = SampleJUnitTest.class.getResourceAsStream("/ECA_OAM_VFOrphan.yaml");
- readPayload(inputArtifacts,fis4, "ECA_OAM_VFOrphan.yaml");
+ readPayloadFromResource(inputArtifacts, "ECA_OAM_VFOrphan.yaml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -583,10 +544,7 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_MissingVFTemplate.yml");
- readPayload(inputArtifacts,fis1, "service_vmme_template_MissingVFTemplate.yml");
-
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_MissingVFTemplate.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -618,17 +576,13 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/CMAUI_VFMissingVFModule.yaml");
- readPayload(inputArtifacts,fis3, "CMAUI_VFMissingVFModule.yaml");
+ readPayloadFromResource(inputArtifacts, "CMAUI_VFMissingVFModule.yaml");
- InputStream fis4 = SampleJUnitTest.class.getResourceAsStream("/ECA_OAM_VFMissingVFModule.yaml");
- readPayload(inputArtifacts,fis4, "ECA_OAM_VFMissingVFModule.yaml");
+ readPayloadFromResource(inputArtifacts, "ECA_OAM_VFMissingVFModule.yaml");
- InputStream fis5 = SampleJUnitTest.class.getResourceAsStream("/MMSC_Sevice_07_25_16MissingVFModule.yaml");
- readPayload(inputArtifacts,fis5, "MMSC_Sevice_07_25_16MissingVFModule.yaml");
+ readPayloadFromResource(inputArtifacts, "MMSC_Sevice_07_25_16MissingVFModule.yaml");
- InputStream fis6 = SampleJUnitTest.class.getResourceAsStream("/MMSC_VFMissingVFModule.yaml");
- readPayload(inputArtifacts,fis6, "MMSC_VFMissingVFModule.yaml");
+ readPayloadFromResource(inputArtifacts, "MMSC_VFMissingVFModule.yaml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -680,12 +634,9 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_SingleVFVFMod.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_SingleVFVFMod.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_SingleVFVFMod.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_SingleVFVFMod.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_SingleVFVFMod.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_SingleVFVFMod.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
GenerationData data = obj.generateArtifact(inputArtifacts, "",additionalParams);
@@ -705,15 +656,11 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/ServiceWithNodetemplate.yml");
- readPayload(inputArtifacts,fis1, "ServiceWithNodetemplate.yml");
+ readPayloadFromResource(inputArtifacts, "ServiceWithNodetemplate.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/Resource0-template.yml");
- readPayload(inputArtifacts,fis2, "Resource0-template.yml");
+ readPayloadFromResource(inputArtifacts, "Resource0-template.yml");
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/Resource1-template.yml");
- readPayload(inputArtifacts,fis3, "Resource1-template.yml");
+ readPayloadFromResource(inputArtifacts, "Resource1-template.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -747,10 +694,7 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/Service0-template.yml");
- readPayload(inputArtifacts,fis1, "Service0-template.yml");
-
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "Service0-template.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -784,10 +728,7 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/Service0-templateMoreThan256.yml");
- readPayload(inputArtifacts,fis1, "Service0-templateMoreThan256.yml");
-
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "Service0-templateMoreThan256.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -825,17 +766,11 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_DiffVerOfSameVF.yml");
- readPayload(inputArtifacts,fis1, "service_vmme_template_DiffVerOfSameVF.yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_DiffVerOfSameVF.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_DiffVerOfSameVF_1.yml");
- readPayload(inputArtifacts,fis2, "vf_vmme_template_DiffVerOfSameVF_1.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVF_1.yml");
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_DiffVerOfSameVF_2.yml");
- readPayload(inputArtifacts,fis3, "vf_vmme_template_DiffVerOfSameVF_2.yml");
- fis3.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVF_2.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -869,13 +804,9 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
- readPayload(inputArtifacts,fis1, "service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
- readPayload(inputArtifacts,fis2, "vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -909,22 +840,13 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithL3Network.yml");
- readPayload(inputArtifacts,fis1, "service_vmme_template_WithL3Network.yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_WithL3Network.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithL3Network.yml");
- readPayload(inputArtifacts,fis2, "vf_vmme_template_WithL3Network.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithL3Network.yml");
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_WithL3Network.yml");
- readPayload(inputArtifacts,fis3, "resource-AllottedResource-template_WithL3Network.yml");
- fis3.close();
+ readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithL3Network.yml");
- InputStream fis4 = SampleJUnitTest.class.getResourceAsStream
- ("/resource-Extvl-template_WithL3Network.yml");
- readPayload(inputArtifacts,fis4, "resource-Extvl-template_WithL3Network.yml");
- fis4.close();
+ readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithL3Network.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -958,22 +880,13 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithDupL3Network.yml");
- readPayload(inputArtifacts,fis1, "service_vmme_template_WithDupL3Network.yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_WithDupL3Network.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithDupL3Network.yml");
- readPayload(inputArtifacts,fis2, "vf_vmme_template_WithDupL3Network.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithDupL3Network.yml");
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_WithDupL3Network.yml");
- readPayload(inputArtifacts,fis3, "resource-AllottedResource-template_WithDupL3Network.yml");
- fis3.close();
+ readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithDupL3Network.yml");
- InputStream fis4 = SampleJUnitTest.class.getResourceAsStream
- ("/resource-Extvl-template_WithDupL3Network.yml");
- readPayload(inputArtifacts,fis4, "resource-Extvl-template_WithDupL3Network.yml");
- fis4.close();
+ readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithDupL3Network.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -1007,17 +920,11 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithL3NetworkInVFMod.yml");
- readPayload(inputArtifacts,fis1, "service_vmme_template_WithL3NetworkInVFMod.yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_WithL3NetworkInVFMod.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithL3NetworkInVFMod.yml");
- readPayload(inputArtifacts,fis2, "vf_vmme_template_WithL3NetworkInVFMod.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithL3NetworkInVFMod.yml");
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_WithL3NetworkInVFMod.yml");
- readPayload(inputArtifacts,fis3, "resource-AllottedResource-template_WithL3NetworkInVFMod.yml");
- fis3.close();
+ readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithL3NetworkInVFMod.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -1051,28 +958,15 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithDiffVersionOfSameL3Network.yml");
- readPayload(inputArtifacts,fis1, "service_vmme_template_WithDiffVersionOfSameL3Network.yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_WithDiffVersionOfSameL3Network.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithDiffVersionOfSameL3Network.yml");
- readPayload(inputArtifacts,fis2, "vf_vmme_template_WithDiffVersionOfSameL3Network.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithDiffVersionOfSameL3Network.yml");
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml");
- readPayload(inputArtifacts,fis3, "resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml");
- fis3.close();
+ readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml");
- InputStream fis4 = SampleJUnitTest.class.getResourceAsStream
- ("/resource-Extvl-template_WithDiffVersionOfSameL3Network.yml");
- readPayload(inputArtifacts,fis4, "resource-Extvl-template_WithDiffVersionOfSameL3Network.yml");
- fis4.close();
+ readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithDiffVersionOfSameL3Network.yml");
- InputStream fis5 = SampleJUnitTest.class.getResourceAsStream
- ("/resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml");
- readPayload(inputArtifacts,fis5,
- "resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml");
- fis5.close();
+ readPayloadFromResource(inputArtifacts, "resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -1105,15 +999,10 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationWithInvIdGreaterThanSpecifiedLimit() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit" +
- ".yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
- fis2.close();
GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
Assert.assertEquals(false,data.getErrorData().isEmpty());
@@ -1132,15 +1021,10 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationWithInvIdLesserThanSpecifiedLimit() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_WithInvIdLesserThanSpecifiedLimit" +
- ".yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
- fis2.close();
GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
Assert.assertEquals(false,data.getErrorData().isEmpty());
@@ -1162,14 +1046,9 @@ public class SampleJUnitTest extends TestCase {
String configLoc = System.getProperty(ARTIFACTGENERATOR_CONFIG);
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_NoSystemPropConfigured.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_NoSystemPropConfigured" +
- ".yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_NoSystemPropConfigured.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_NoSystemPropConfigured.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_NoSystemPropConfigured.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_NoSystemPropConfigured.yml");
System.clearProperty(ARTIFACTGENERATOR_CONFIG);
@@ -1192,14 +1071,9 @@ public class SampleJUnitTest extends TestCase {
String configLoc = System.getProperty(ARTIFACTGENERATOR_CONFIG);
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_NoSystemPropConfigured.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_NoSystemPropConfigured" +
- ".yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_NoSystemPropConfigured.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_NoSystemPropConfigured.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_NoSystemPropConfigured.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_NoSystemPropConfigured.yml");
System.setProperty(ARTIFACTGENERATOR_CONFIG,configLoc + File.separator + "testErrorWhenNoFileAtConfigLocation");
Map<String, Model> outputArtifactMap = new HashMap<>();
@@ -1223,14 +1097,9 @@ public class SampleJUnitTest extends TestCase {
loadConfig(ArtifactGenerationServiceTest.properties);
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_NoSystemPropConfigured.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_NoSystemPropConfigured" +
- ".yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_NoSystemPropConfigured.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_NoSystemPropConfigured.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_NoSystemPropConfigured.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_NoSystemPropConfigured.yml");
Map<String, Model> outputArtifactMap = new HashMap<>();
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
@@ -1254,14 +1123,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationWithUpdatedUUIDInConfig() throws Exception {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_WithUpdatedUUIDInConfig.yml");
- readPayload(inputArtifacts,fis1, "vf_vmme_template_WithUpdatedUUIDInConfig" +
- ".yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithUpdatedUUIDInConfig.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_WithUpdatedUUIDInConfig.yml");
- readPayload(inputArtifacts,fis2, "service_vmme_template_WithUpdatedUUIDInConfig.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_WithUpdatedUUIDInConfig.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
@@ -1301,12 +1165,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationVerifyMandatoryParameterServiceVersion() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
- readPayload(inputArtifacts, fis1, "vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
- readPayload(inputArtifacts, fis2, "service_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, new HashMap<String, String>());
@@ -1323,12 +1184,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationVerifyServiceVersionFormat() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyServiceVersionFormat.yml");
- readPayload(inputArtifacts, fis1, "vf_vmme_template_VerifyServiceVersionFormat.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyServiceVersionFormat.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyServiceVersionFormat.yml");
- readPayload(inputArtifacts, fis2, "service_vmme_template_VerifyServiceVersionFormat.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyServiceVersionFormat.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1");
@@ -1363,12 +1221,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationVerifyServiceVersion() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyServiceVersion.yml");
- readPayload(inputArtifacts, fis1, "vf_vmme_template_VerifyServiceVersion.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyServiceVersion.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyServiceVersion.yml");
- readPayload(inputArtifacts, fis2, "service_vmme_template_VerifyServiceVersion.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyServiceVersion.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -1405,14 +1260,10 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationVerifyResourceVersionFormat() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyResourceVersionFormat.yml");
- readPayload(inputArtifacts, fis1, "vf_vmme_template_VerifyResourceVersionFormat.yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyResourceVersionFormat.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyResourceVersionFormat1.yml");
- readPayload(inputArtifacts, fis2, "service_vmme_template_VerifyResourceVersionFormat1.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyResourceVersionFormat1.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
- fis2.close();
List<ToscaTemplate> toscas = new LinkedList();
for (Artifact inputArtifact : inputArtifacts) {
@@ -1428,9 +1279,7 @@ public class SampleJUnitTest extends TestCase {
inputArtifacts.remove(1);
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyResourceVersionFormat2.yml");
- readPayload(inputArtifacts, fis3, "service_vmme_template_VerifyResourceVersionFormat2.yml");
- fis3.close();
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyResourceVersionFormat2.yml");
GenerationData data2 = obj.generateArtifact(inputArtifacts, generatorConfig,
additionalParams);
List<Artifact> resultData2 = data2.getResultData();
@@ -1448,12 +1297,9 @@ public class SampleJUnitTest extends TestCase {
public void testArtifactGenerationVerifyMandatoryParameterResourceVersion() {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
- readPayload(inputArtifacts, fis1, "vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
+ readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
- fis1.close();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
- readPayload(inputArtifacts, fis2, "service_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
+ readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
for (Artifact inputArtifact : inputArtifacts) {
@@ -1474,13 +1320,9 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service-ServiceWithAllottedResourceIpmux-template.yml");
- readPayload(inputArtifacts, fis1, "service-ServiceWithAllottedResourceIpmux-template.yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourceIpmux-template.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_IpMux.yml");
- readPayload(inputArtifacts, fis2, "resource-AllottedResource-template_IpMux.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_IpMux.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -1505,14 +1347,9 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream
- ("/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml");
- readPayload(inputArtifacts, fis1, "service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource-template_IpMux_WithGroups.yml");
- readPayload(inputArtifacts, fis2, "resource-AllottedResource-template_IpMux_WithGroups.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_IpMux_WithGroups.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -1545,17 +1382,11 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml");
- readPayload(inputArtifacts, fis1, "service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource1SameInvariant-IpMux-template.yml");
- readPayload(inputArtifacts, fis2, "resource-AllottedResource1SameInvariant-IpMux-template.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "resource-AllottedResource1SameInvariant-IpMux-template.yml");
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResource2SameInvariant-IpMux-template.yml");
- readPayload(inputArtifacts, fis3, "resource-AllottedResource2SameInvariant-IpMux-template.yml");
- fis3.close();
+ readPayloadFromResource(inputArtifacts, "resource-AllottedResource2SameInvariant-IpMux-template.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -1589,13 +1420,9 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml");
- readPayload(inputArtifacts, fis1, "service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml");
- fis1.close();
+ readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml");
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml");
- readPayload(inputArtifacts, fis2, "resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml");
- fis2.close();
+ readPayloadFromResource(inputArtifacts, "resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -1629,14 +1456,11 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service-Allottedipmux-template.yml");
- readPayload(inputArtifacts, fis2, "service-Allottedipmux-template.yml");
+ readPayloadFromResource(inputArtifacts, "service-Allottedipmux-template.yml");
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/resource-IpMuxDemux-template.yml");
- readPayload(inputArtifacts, fis1, "resource-IpMuxDemux-template.yml");
+ readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template.yml");
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-TunnelXconn-template.yml");
- readPayload(inputArtifacts, fis3, "resource-TunnelXconn-template.yml");
+ readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -1669,22 +1493,15 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service-SdWan-template_WithOutDepSerId.yml");
- readPayload(inputArtifacts, fis2, "service-SdWan-template_WithOutDepSerId.yml");
+ readPayloadFromResource(inputArtifacts, "service-SdWan-template_WithOutDepSerId.yml");
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/resource-VhnfNonHeat-template_WithOutDepSerId.yml");
- readPayload(inputArtifacts, fis1, "resource-VhnfNonHeat-template_WithOutDepSerId.yml");
+ readPayloadFromResource(inputArtifacts, "resource-VhnfNonHeat-template_WithOutDepSerId.yml");
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-TunnelXconn-template_WithOutDepSerId.yml");
- readPayload(inputArtifacts, fis3, "resource-TunnelXconn-template_WithOutDepSerId.yml");
+ readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template_WithOutDepSerId.yml");
- InputStream fis4 = SampleJUnitTest.class.getResourceAsStream
- ("/resource-ServiceAdmin-template_WithOutDepSerId.yml");
- readPayload(inputArtifacts, fis4, "resource-ServiceAdmin-template_WithOutDepSerId.yml");
+ readPayloadFromResource(inputArtifacts, "resource-ServiceAdmin-template_WithOutDepSerId.yml");
- InputStream fis5 = SampleJUnitTest.class.getResourceAsStream
- ("/resource-IpMuxDemux-template_WithOutDepSerId.yml");
- readPayload(inputArtifacts, fis5, "resource-IpMuxDemux-template_WithOutDepSerId.yml");
+ readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template_WithOutDepSerId.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -1707,22 +1524,15 @@ public class SampleJUnitTest extends TestCase {
try {
List<Artifact> inputArtifacts = new ArrayList();
- InputStream fis2 = SampleJUnitTest.class.getResourceAsStream("/service-SdWan-template_AllRes_VF.yml");
- readPayload(inputArtifacts, fis2, "service-SdWan-template_AllRes_VF.yml");
+ readPayloadFromResource(inputArtifacts, "service-SdWan-template_AllRes_VF.yml");
- InputStream fis1 = SampleJUnitTest.class.getResourceAsStream("/resource-VhnfNonHeat-template_AllRes_VF.yml");
- readPayload(inputArtifacts, fis1, "resource-VhnfNonHeat-template_AllRes_VF.yml");
+ readPayloadFromResource(inputArtifacts, "resource-VhnfNonHeat-template_AllRes_VF.yml");
- InputStream fis3 = SampleJUnitTest.class.getResourceAsStream("/resource-TunnelXconn-template_AllRes_VF.yml");
- readPayload(inputArtifacts, fis3, "resource-TunnelXconn-template_AllRes_VF.yml");
+ readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template_AllRes_VF.yml");
- InputStream fis4 = SampleJUnitTest.class.getResourceAsStream
- ("/resource-ServiceAdmin-template_AllRes_VF.yml");
- readPayload(inputArtifacts, fis4, "resource-ServiceAdmin-template_AllRes_VF.yml");
+ readPayloadFromResource(inputArtifacts, "resource-ServiceAdmin-template_AllRes_VF.yml");
- InputStream fis5 = SampleJUnitTest.class.getResourceAsStream
- ("/resource-IpMuxDemux-template_AllRes_VF.yml");
- readPayload(inputArtifacts, fis5, "resource-IpMuxDemux-template_AllRes_VF.yml");
+ readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template_AllRes_VF.yml");
ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
List<ToscaTemplate> toscas = new LinkedList();
@@ -1802,4 +1612,10 @@ public class SampleJUnitTest extends TestCase {
}
}*/
+ private void readPayloadFromResource(List<Artifact> inputArtifacts, String fileName) throws IOException {
+
+ try (InputStream fis = SampleJUnitTest.class.getResourceAsStream("/" + fileName)) {
+ readPayload(inputArtifacts, fis, fileName);
+ }
+ }
}
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml
index 77d8eb9857..e395e3fc27 100644
--- a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/capabilities.yml
@@ -98,3 +98,53 @@ capability_types:
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 \ No newline at end of file
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml
index c7ce3c13e0..85ff50c112 100644
--- a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml
@@ -554,4 +554,225 @@ data_types:
description: Hash type
required: false
default: md5
-
+
+ tosca.datatypes.nfv.RequestedAdditionalCapability:
+ derived_from: tosca.datatypes.Root
+ properties:
+ support_mandatory:
+ type: boolean
+ required: true
+ min_requested_additional_capability_version:
+ type: string
+ required: false
+ preferred_requested_additional_capability_version:
+ type: string
+ required: false
+ requested_additional_capability_name:
+ type: string
+ required: true
+ target_performance_parameters:
+ type: map
+ entry_schema:
+ type: string
+ required: true
+ tosca.datatypes.nfv.VirtualMemory:
+ derived_from: tosca.datatypes.Root
+ properties:
+ virtual_mem_size:
+ type: string
+ required: true
+ virtual_mem_oversubscription_policy:
+ type: string
+ required: false
+ numa_enabled:
+ type: boolean
+ required: false
+ tosca.datatypes.nfv.VirtualCpu:
+ derived_from: tosca.datatypes.Root
+ properties:
+ cpu_architecture:
+ type: string
+ required: false
+ num_virtual_cpu:
+ type: integer
+ required: true
+ virtual_cpu_clock:
+ type: scalar-unit.frequency
+ required: false
+ virtual_cpu_oversubscription_policy:
+ type: string
+ required: false
+ virtual_cpu_pinning:
+ type: tosca.datatypes.nfv.VirtualCpuPinning
+ required: false
+ tosca.datatypes.nfv.VirtualCpuPinning:
+ derived_from: tosca.datatypes.Root
+ properties:
+ cpu_pinning_policy:
+ type: string
+ constraints:
+ - valid_values: [ static, dynamic ]
+ required: false
+ cpu_pinning_map:
+ type: map
+ entry_schema:
+ type: string
+ required: false
+ tosca.datatypes.nfv.VnfcConfigurableProperties:
+ properties:
+ additional_vnfc_configurable_properties:
+ entry_schema:
+ type: string
+ required: false
+ type: map
+ tosca.datatypes.network.NetworkInfo:
+ properties:
+ network_id:
+ required: false
+ type: string
+ addresses:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ network_name:
+ required: false
+ type: string
+ tosca.datatypes.network.PortInfo:
+ properties:
+ port_name:
+ required: false
+ type: string
+ network_id:
+ required: false
+ type: string
+ addresses:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ mac_address:
+ required: false
+ type: string
+ port_id:
+ required: false
+ type: string
+ tosca.datatypes.nfv.L3AddressData:
+ properties:
+ number_of_ip_address:
+ required: false
+ type: integer
+ ip_address_assignment:
+ type: boolean
+ ip_address_type:
+ constraints:
+ - valid_values:
+ - ipv4
+ - ipv6
+ required: false
+ type: string
+ floating_ip_activated:
+ type: string
+ tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements:
+ properties:
+ name:
+ required: false
+ type: string
+ support_mandatory:
+ type: boolean
+ description:
+ required: false
+ type: string
+ requirement:
+ entry_schema:
+ type: string
+ type: map
+ tosca.datatype.nfv.AddressData:
+ properties:
+ address_type:
+ constraints:
+ - valid_values:
+ - mac_address
+ - ip_address
+ type: string
+ l2_address_data:
+ required: false
+ type: tosca.datatypes.nfv.L2AddressData
+ l3_address_data:
+ required: false
+ type: tosca.datatypes.nfv.L3AddressData
+ tosca.datatypes.nfv.L2AddressData: {}
+ tosca.datatypes.nfv.ConnectivityType:
+ properties:
+ layer_protocol:
+ constraints:
+ - valid_values:
+ - ethernet
+ - mpls
+ - odu2
+ - ipv4
+ - ipv6
+ - pseudo_wire
+ type: string
+ flow_pattern:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.FloatingIP:
+ properties:
+ external_network:
+ required: false
+ type: string
+ ip_address:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.AddressPairs:
+ properties:
+ ip:
+ required: false
+ type: string
+ mac:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.InjectData:
+ properties:
+ file_name:
+ required: false
+ type: string
+ file_data:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.zte.WatchDog:
+ properties:
+ enable_delay:
+ required: false
+ type: integer
+ action:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule:
+ properties:
+ scope:
+ required: false
+ type: string
+ affinity_antiaffinity:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.LocationInfo:
+ properties:
+ availability_zone:
+ required: false
+ type: string
+ vimid:
+ required: false
+ type: integer
+ tenant:
+ required: false
+ type: string
+ tosca.datatypes.nfv.ext.HostRouteInfo:
+ properties:
+ destination:
+ required: false
+ type: string
+ nexthop:
+ required: false
+ type: string \ No newline at end of file
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml
index fb2e030a06..aaff11b0ed 100644
--- a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml
@@ -569,4 +569,538 @@ node_types:
type: map
entry_schema:
type: org.openecomp.datatypes.ImageInfo
- required: false \ No newline at end of file
+ required: false
+ 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 \ No newline at end of file
diff --git a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml
index 6243cfa5d1..220658a8bf 100644
--- a/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml
+++ b/common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/relationships.yml
@@ -54,3 +54,15 @@ relationship_types:
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/dox-sequence-diagram-ui/package.json b/dox-sequence-diagram-ui/package.json
index 81d42af163..17f4efa0fa 100644
--- a/dox-sequence-diagram-ui/package.json
+++ b/dox-sequence-diagram-ui/package.json
@@ -12,14 +12,14 @@
"author": "ECOMP",
"license": "SEE LICENSE IN LICENSE.TXT",
"dependencies": {
- "d3": "^4.10.0",
+ "d3": "^3.5.16",
"lodash": "^4.12.0",
"react": "^15.1.0",
"react-dnd": "^2.1.2",
"react-dnd-html5-backend": "^2.1.2",
"react-dom": "^15.1.0",
"react-redux": "^4.4.5",
- "react-select": "^1.0.0-beta13",
+ "react-select": "1.0.0-rc.5",
"redux": "^3.5.2"
},
"devDependencies": {
@@ -42,7 +42,6 @@
"eslint-plugin-jsx-a11y": "^1.2.2",
"eslint-plugin-react": "^5.1.1",
"file-loader": "^0.8.5",
- "gulp": "^3.9.1",
"json-loader": "^0.5.4",
"node-http-proxy": "^0.2.3",
"node-sass": "^3.7.0",
diff --git a/dox-sequence-diagram-ui/webpack.config.js b/dox-sequence-diagram-ui/webpack.config.js
index 7b7f4b948c..94850ec297 100644
--- a/dox-sequence-diagram-ui/webpack.config.js
+++ b/dox-sequence-diagram-ui/webpack.config.js
@@ -28,7 +28,7 @@ var config = {
},
eslint: {
failOnWarning: false,
- failOnError: true,
+ failOnError: false,
configFile: 'eslintrc.json'
},
devtool: 'eval-source-map',
diff --git a/onboarding/pom.xml b/onboarding/pom.xml
index 36a36ee325..141ffc012d 100644
--- a/onboarding/pom.xml
+++ b/onboarding/pom.xml
@@ -20,6 +20,7 @@
<properties>
<!-- Maven plugin versions -->
+ <jacoco.version>0.7.9</jacoco.version>
<mvn.assembly.version>2.1</mvn.assembly.version>
<mvn.compiler.version>2.5.1</mvn.compiler.version>
<mvn.deploy.version>2.4</mvn.deploy.version>
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/src/main/java/org/openecomp/sdcrests/errors/DefaultExceptionMapper.java b/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/src/main/java/org/openecomp/sdcrests/errors/DefaultExceptionMapper.java
index d399469745..2f6d298f01 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/src/main/java/org/openecomp/sdcrests/errors/DefaultExceptionMapper.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/src/main/java/org/openecomp/sdcrests/errors/DefaultExceptionMapper.java
@@ -35,29 +35,25 @@ import org.openecomp.sdc.common.errors.ValidationErrorBuilder;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.validation.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
public class DefaultExceptionMapper implements ExceptionMapper<Exception> {
private static final String ERROR_CODES_TO_RESPONSE_STATUS_MAPPING_FILE =
"errorCodesToResponseStatusMapping.json";
@SuppressWarnings("unchecked")
private static Map<String, String> errorCodeToResponseStatus =
- JsonUtil.json2Object(FileUtils
- .getFileInputStream(ERROR_CODES_TO_RESPONSE_STATUS_MAPPING_FILE), Map.class);
+ FileUtils.readViaInputStream(ERROR_CODES_TO_RESPONSE_STATUS_MAPPING_FILE,
+ stream -> JsonUtil.json2Object(stream, Map.class));
+
private static Logger logger = (Logger) LoggerFactory.getLogger(DefaultExceptionMapper.class);
@Override
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/EntitlementPoolLimitsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/EntitlementPoolLimitsImpl.java
index 36e25e0f2e..4365ace85d 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/EntitlementPoolLimitsImpl.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/EntitlementPoolLimitsImpl.java
@@ -32,7 +32,9 @@ import javax.ws.rs.core.Response;
public class EntitlementPoolLimitsImpl implements EntitlementPoolLimits {
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
private VendorLicenseManager vendorLicenseManager =
- VendorLicenseManagerFactory.getInstance().createInterface();
+ VendorLicenseManagerFactory.getInstance().createInterface();
+
+ public static final String parent = "EntitlementPool";
@Override
public Response createLimit(LimitRequestDto request,
@@ -44,18 +46,19 @@ public class EntitlementPoolLimitsImpl implements EntitlementPoolLimits {
MdcUtil.initMdc(LoggerServiceName.Create_LIMIT.toString());
vendorLicenseManager.getEntitlementPool(new EntitlementPoolEntity(vlmId, Version.valueOf
- (versionId), entitlementPoolId), user);
+ (versionId), entitlementPoolId), user);
LimitEntity limitEntity =
- new MapLimitRequestDtoToLimitEntity()
- .applyMapping(request, LimitEntity.class);
+ new MapLimitRequestDtoToLimitEntity()
+ .applyMapping(request, LimitEntity.class);
limitEntity.setEpLkgId(entitlementPoolId);
limitEntity.setVendorLicenseModelId(vlmId);
+ limitEntity.setParent(parent);
LimitEntity createdLimit = vendorLicenseManager.createLimit(limitEntity, user);
MapLimitEntityToLimitCreationDto mapper = new MapLimitEntityToLimitCreationDto();
LimitCreationDto createdLimitDto = mapper.applyMapping(createdLimit, LimitCreationDto
- .class);
+ .class);
/*StringWrapperResponse result =
createdLimit != null ? new StringWrapperResponse(createdLimit.getId())
@@ -65,24 +68,24 @@ public class EntitlementPoolLimitsImpl implements EntitlementPoolLimits {
//return Response.ok(result).build();
return Response.ok(createdLimitDto != null ? createdLimitDto : null)
- .build();
+ .build();
}
@Override
public Response listLimits(String vlmId, String versionId, String entitlementPoolId, String
- user) {
+ user) {
mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "EP id", entitlementPoolId);
MdcUtil.initMdc(LoggerServiceName.List_EP.toString());
vendorLicenseManager.getEntitlementPool(new EntitlementPoolEntity(vlmId, Version.valueOf
- (versionId), entitlementPoolId), user);
+ (versionId), entitlementPoolId), user);
Collection<LimitEntity> limits =
- vendorLicenseManager.listLimits(vlmId, Version.valueOf(versionId), entitlementPoolId, user);
+ vendorLicenseManager.listLimits(vlmId, Version.valueOf(versionId), entitlementPoolId, user);
GenericCollectionWrapper<LimitEntityDto> result = new GenericCollectionWrapper<>();
MapLimitEntityToLimitDto outputMapper =
- new MapLimitEntityToLimitDto();
+ new MapLimitEntityToLimitDto();
for (LimitEntity limit : limits) {
result.add(outputMapper.applyMapping(limit, LimitEntityDto.class));
}
@@ -96,12 +99,12 @@ public class EntitlementPoolLimitsImpl implements EntitlementPoolLimits {
public Response getLimit( String vlmId, String versionId, String entitlementPoolId,
String limitId, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, EP id, Limit Id", vlmId, entitlementPoolId,
- limitId);
+ limitId);
MdcUtil.initMdc(LoggerServiceName.Get_LIMIT.toString());
vendorLicenseManager.getEntitlementPool(new EntitlementPoolEntity(vlmId, Version.valueOf
- (versionId), entitlementPoolId), user);
+ (versionId), entitlementPoolId), user);
LimitEntity epInput = new LimitEntity();
epInput.setVendorLicenseModelId(vlmId);
epInput.setVersion(Version.valueOf(versionId));
@@ -110,11 +113,11 @@ public class EntitlementPoolLimitsImpl implements EntitlementPoolLimits {
LimitEntity limit = vendorLicenseManager.getLimit(epInput, user);
LimitEntityDto entitlementPoolEntityDto = limit == null ? null :
- new MapLimitEntityToLimitDto()
- .applyMapping(limit, LimitEntityDto.class);
+ new MapLimitEntityToLimitDto()
+ .applyMapping(limit, LimitEntityDto.class);
mdcDataDebugMessage.debugExitMessage("VLM id, EP id, Limit Id", vlmId, entitlementPoolId,
- limitId);
+ limitId);
return Response.ok(entitlementPoolEntityDto).build();
}
@@ -127,39 +130,40 @@ public class EntitlementPoolLimitsImpl implements EntitlementPoolLimits {
String limitId,
String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "EP id", entitlementPoolId, "limit Id",
- limitId);
+ limitId);
MdcUtil.initMdc(LoggerServiceName.Update_LIMIT.toString());
vendorLicenseManager.getEntitlementPool(new EntitlementPoolEntity(vlmId, Version.valueOf
- (versionId), entitlementPoolId), user);
+ (versionId), entitlementPoolId), user);
LimitEntity limitEntity =
- new MapLimitRequestDtoToLimitEntity()
- .applyMapping(request, LimitEntity.class);
+ new MapLimitRequestDtoToLimitEntity()
+ .applyMapping(request, LimitEntity.class);
limitEntity.setEpLkgId(entitlementPoolId);
limitEntity.setVendorLicenseModelId(vlmId);
limitEntity.setId(limitId);
+ limitEntity.setParent(parent);
vendorLicenseManager.updateLimit(limitEntity, user);
mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "EP id", entitlementPoolId, "limit Id",
- limitId);
+ limitId);
return Response.ok().build();
}
/**
- * Delete entitlement pool.
- *
- * @param vlmId the vlm id
- * @param entitlementPoolId the entitlement pool id
- * @param limitId the limitId
- * @param user the user
- * @return the response
+ * Delete entitlement pool.
+ *
+ * @param vlmId the vlm id
+ * @param entitlementPoolId the entitlement pool id
+ * @param limitId the limitId
+ * @param user the user
+ * @return the response
*/
public Response deleteLimit(String vlmId, String versionId, String entitlementPoolId,
- String limitId, String user) {
+ String limitId, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, Verison Id, EP id, Limit Id", vlmId, versionId, entitlementPoolId, limitId);
MdcUtil.initMdc(LoggerServiceName.Delete_LIMIT.toString());
@@ -170,6 +174,8 @@ public class EntitlementPoolLimitsImpl implements EntitlementPoolLimits {
limitInput.setVendorLicenseModelId(vlmId);
limitInput.setEpLkgId(entitlementPoolId);
limitInput.setId(limitId);
+ limitInput.setParent(parent);
+
vendorLicenseManager.deleteLimit(limitInput, user);
mdcDataDebugMessage.debugExitMessage("VLM id, Verison Id, EP id, Limit Id", vlmId, versionId, entitlementPoolId, limitId);
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseKeyGroupLimitsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseKeyGroupLimitsImpl.java
index 4c85cfa45f..bedbc928ed 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseKeyGroupLimitsImpl.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/LicenseKeyGroupLimitsImpl.java
@@ -32,7 +32,9 @@ public class LicenseKeyGroupLimitsImpl implements LicenseKeyGroupLimits {
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
private VendorLicenseManager vendorLicenseManager =
- VendorLicenseManagerFactory.getInstance().createInterface();
+ VendorLicenseManagerFactory.getInstance().createInterface();
+
+ public static final String parent = "LicenseKeyGroup";
@Override
public Response createLimit(LimitRequestDto request,
@@ -48,15 +50,16 @@ public class LicenseKeyGroupLimitsImpl implements LicenseKeyGroupLimits {
(versionId), licenseKeyGroupId), user);
LimitEntity limitEntity =
- new MapLimitRequestDtoToLimitEntity()
- .applyMapping(request, LimitEntity.class);
+ new MapLimitRequestDtoToLimitEntity()
+ .applyMapping(request, LimitEntity.class);
limitEntity.setEpLkgId(licenseKeyGroupId);
limitEntity.setVendorLicenseModelId(vlmId);
+ limitEntity.setParent(parent);
LimitEntity createdLimit = vendorLicenseManager.createLimit(limitEntity, user);
MapLimitEntityToLimitCreationDto mapper = new MapLimitEntityToLimitCreationDto();
LimitCreationDto createdLimitDto = mapper.applyMapping(createdLimit, LimitCreationDto
- .class);
+ .class);
/*StringWrapperResponse result =
createdLimit != null ? new StringWrapperResponse(createdLimit.getId())
: null;*/
@@ -65,24 +68,24 @@ public class LicenseKeyGroupLimitsImpl implements LicenseKeyGroupLimits {
//return Response.ok(result).build();
return Response.ok(createdLimitDto != null ? createdLimitDto : null)
- .build();
+ .build();
}
@Override
public Response listLimits(String vlmId, String versionId, String licenseKeyGroupId, String
- user) {
+ user) {
mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId);
MdcUtil.initMdc(LoggerServiceName.List_EP.toString());
vendorLicenseManager.getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, Version.valueOf
- (versionId), licenseKeyGroupId), user);
+ (versionId), licenseKeyGroupId), user);
Collection<LimitEntity> limits =
- vendorLicenseManager.listLimits(vlmId, Version.valueOf(versionId), licenseKeyGroupId, user);
+ vendorLicenseManager.listLimits(vlmId, Version.valueOf(versionId), licenseKeyGroupId, user);
GenericCollectionWrapper<LimitEntityDto> result = new GenericCollectionWrapper<>();
MapLimitEntityToLimitDto outputMapper =
- new MapLimitEntityToLimitDto();
+ new MapLimitEntityToLimitDto();
for (LimitEntity limit : limits) {
result.add(outputMapper.applyMapping(limit, LimitEntityDto.class));
}
@@ -100,24 +103,25 @@ public class LicenseKeyGroupLimitsImpl implements LicenseKeyGroupLimits {
String limitId,
String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId, "limit Id",
- limitId);
+ limitId);
MdcUtil.initMdc(LoggerServiceName.Update_LIMIT.toString());
vendorLicenseManager.getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, Version.valueOf
- (versionId), licenseKeyGroupId), user);
+ (versionId), licenseKeyGroupId), user);
LimitEntity limitEntity =
- new MapLimitRequestDtoToLimitEntity()
- .applyMapping(request, LimitEntity.class);
+ new MapLimitRequestDtoToLimitEntity()
+ .applyMapping(request, LimitEntity.class);
limitEntity.setEpLkgId(licenseKeyGroupId);
limitEntity.setVendorLicenseModelId(vlmId);
limitEntity.setId(limitId);
+ limitEntity.setParent(parent);
vendorLicenseManager.updateLimit(limitEntity, user);
mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId, "limit Id",
- limitId);
+ limitId);
return Response.ok().build();
}
@@ -134,20 +138,22 @@ public class LicenseKeyGroupLimitsImpl implements LicenseKeyGroupLimits {
public Response deleteLimit(String vlmId, String versionId, String licenseKeyGroupId,
String limitId, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, Verison Id, LKG id, Limit Id", vlmId, versionId,
- licenseKeyGroupId, limitId);
+ licenseKeyGroupId, limitId);
MdcUtil.initMdc(LoggerServiceName.Delete_LIMIT.toString());
vendorLicenseManager.getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, Version.valueOf
- (versionId), licenseKeyGroupId), user);
+ (versionId), licenseKeyGroupId), user);
LimitEntity limitInput = new LimitEntity();
limitInput.setVendorLicenseModelId(vlmId);
limitInput.setEpLkgId(licenseKeyGroupId);
limitInput.setId(limitId);
+ limitInput.setParent(parent);
+
vendorLicenseManager.deleteLimit(limitInput, user);
mdcDataDebugMessage.debugExitMessage("VLM id, Verison Id, LKG id, Limit Id", vlmId, versionId,
- licenseKeyGroupId, limitId);
+ licenseKeyGroupId, limitId);
return Response.ok().build();
}
@@ -156,11 +162,11 @@ public class LicenseKeyGroupLimitsImpl implements LicenseKeyGroupLimits {
public Response getLimit( String vlmId, String versionId, String licenseKeyGroupId,
String limitId, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id, Limit Id", vlmId, licenseKeyGroupId,
- limitId);
+ limitId);
MdcUtil.initMdc(LoggerServiceName.Get_LIMIT.toString());
vendorLicenseManager.getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, Version.valueOf
- (versionId), licenseKeyGroupId), user);
+ (versionId), licenseKeyGroupId), user);
LimitEntity epInput = new LimitEntity();
epInput.setVendorLicenseModelId(vlmId);
epInput.setVersion(Version.valueOf(versionId));
@@ -169,11 +175,11 @@ public class LicenseKeyGroupLimitsImpl implements LicenseKeyGroupLimits {
LimitEntity limit = vendorLicenseManager.getLimit(epInput, user);
LimitEntityDto entitlementPoolEntityDto = limit == null ? null :
- new MapLimitEntityToLimitDto()
- .applyMapping(limit, LimitEntityDto.class);
+ new MapLimitEntityToLimitDto()
+ .applyMapping(limit, LimitEntityDto.class);
mdcDataDebugMessage.debugExitMessage("VLM id, LKG id, Limit Id", vlmId, licenseKeyGroupId,
- limitId);
+ limitId);
return Response.ok(entitlementPoolEntityDto).build();
}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml
index f146881751..d65e9e6b27 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml
@@ -102,11 +102,11 @@
<artifactId>woodstox-core-asl</artifactId>
<version>${woodstox.version}</version>
</dependency>
- <dependency>
+ <!--dependency>
<groupId>org.openecomp.sdc</groupId>
<artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
<version>${project.version}</version>
- </dependency>
+ </dependency-->
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/ComponentProcesses.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/ComponentProcesses.java
index ca50ef1426..edb3b5bfc2 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/ComponentProcesses.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/ComponentProcesses.java
@@ -20,35 +20,24 @@
package org.openecomp.sdcrests.vsp.rest;
-import static org.openecomp.sdcrests.common.RestConstants.USER_ID_HEADER_PARAM;
-import static org.openecomp.sdcrests.common.RestConstants.USER_MISSING_ERROR_MSG;
-
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
import org.apache.cxf.jaxrs.ext.multipart.Multipart;
-import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.ProcessEntityDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.ProcessRequestDto;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Pattern;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
+import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import static org.openecomp.sdcrests.common.RestConstants.USER_ID_HEADER_PARAM;
+import static org.openecomp.sdcrests.common.RestConstants.USER_MISSING_ERROR_MSG;
+
@Path("/v1.0/vendor-software-products/{vspId}/versions/{versionId}/components/{componentId}/processes")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/OrchestrationTemplateCandidate.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/OrchestrationTemplateCandidate.java
index fbf29185e3..fa7f421fc8 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/OrchestrationTemplateCandidate.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/OrchestrationTemplateCandidate.java
@@ -23,6 +23,7 @@ package org.openecomp.sdcrests.vsp.rest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
+import org.apache.cxf.jaxrs.ext.multipart.Attachment;
import org.apache.cxf.jaxrs.ext.multipart.Multipart;
import org.openecomp.sdc.vendorsoftwareproduct.types.FileDataStructureDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.UploadFileResponseDto;
@@ -61,7 +62,7 @@ public interface OrchestrationTemplateCandidate extends VspEntities {
Response upload(
@PathParam("vspId") String vspId,
@ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
- @Multipart("upload") InputStream heatFileToUpload,
+ @Multipart("upload") Attachment fileToUpload,
@NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
@GET
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapUploadFileResponseToUploadFileResponseDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapUploadFileResponseToUploadFileResponseDto.java
index cccfd02371..48053d053d 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapUploadFileResponseToUploadFileResponseDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapUploadFileResponseToUploadFileResponseDto.java
@@ -34,5 +34,7 @@ public class MapUploadFileResponseToUploadFileResponseDto
public void doMapping(UploadFileResponse source, UploadFileResponseDto target) {
target.setStatus(source.getStatus());
target.setErrors(source.getErrors());
+ target.setOnboardingOrigin(source.getOnboardingType().toString());
+ target.setNetworkPackageName(source.getNetworkPackageName());
}
}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapValidationResponseToDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapValidationResponseToDto.java
index 89d210f372..3cabebbb69 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapValidationResponseToDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapValidationResponseToDto.java
@@ -24,8 +24,6 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.openecomp.sdc.common.errors.ErrorCode;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.vendorsoftwareproduct.types.ComponentValidationResult;
-import org.openecomp.sdc.vendorsoftwareproduct.types.DeploymentFlavorValidationResult;
import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireValidationResult;
import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
@@ -49,37 +47,37 @@ import java.util.Set;
import java.util.stream.Collectors;
public class MapValidationResponseToDto
- extends MappingBase<ValidationResponse, ValidationResponseDto> {
+ extends MappingBase<ValidationResponse, ValidationResponseDto> {
private static Map<String, List<ErrorMessageDto>> mapUploadDataErrors(
- Map<String, List<ErrorMessage>> uploadDataErrors) {
+ Map<String, List<ErrorMessage>> uploadDataErrors) {
if (MapUtils.isEmpty(uploadDataErrors)) {
return null;
}
return uploadDataErrors.entrySet().stream().collect(
- Collectors.toMap(entry -> entry.getKey(), entry -> mapErrorMessages(entry.getValue())));
+ Collectors.toMap(entry -> entry.getKey(), entry -> mapErrorMessages(entry.getValue())));
}
private static QuestionnaireValidationResultDto mapQuestionnaireValidationResult(
- QuestionnaireValidationResult questionnaireValidationResult) {
+ QuestionnaireValidationResult questionnaireValidationResult) {
if (Objects.isNull(questionnaireValidationResult)
- || Objects.isNull(questionnaireValidationResult.getValidationData())) {
+ || Objects.isNull(questionnaireValidationResult.getValidationData())) {
return null;
}
QuestionnaireValidationResultDto questionnaireValidationResultDto =
- new QuestionnaireValidationResultDto();
+ new QuestionnaireValidationResultDto();
questionnaireValidationResultDto.setValid(questionnaireValidationResult.isValid());
Set<CompositionEntityValidationDataDto> validationDataDto = new HashSet<>();
for(CompositionEntityValidationData validationData : questionnaireValidationResult.getValidationData()){
validationDataDto.add(new MapCompositionEntityValidationDataToDto().applyMapping
- (validationData, CompositionEntityValidationDataDto.class));
+ (validationData, CompositionEntityValidationDataDto.class));
}
questionnaireValidationResultDto.setValidationData(validationDataDto);
return questionnaireValidationResultDto;
}
- private static ComponentValidationResultDto mapcomponentValidationResult(
+ /*private static ComponentValidationResultDto mapcomponentValidationResult(
ComponentValidationResult componentValidationResult) {
if (componentValidationResult == null) {
return null;
@@ -115,18 +113,18 @@ public class MapValidationResponseToDto
deploymentFlavorValidationResultDto.setValidationData(validationDataDto);
return deploymentFlavorValidationResultDto;
- }
+ }*/
private static List<ErrorMessageDto> mapErrorMessages(List<ErrorMessage> errorMessages) {
return errorMessages == null ? null : errorMessages.stream().map(
- errorMessage -> new MapErrorMessageToDto()
- .applyMapping(errorMessage, ErrorMessageDto.class)).collect(Collectors.toList());
+ errorMessage -> new MapErrorMessageToDto()
+ .applyMapping(errorMessage, ErrorMessageDto.class)).collect(Collectors.toList());
}
private static Collection<ErrorCodeDto> mapErrorCodes(Collection<ErrorCode> errorCodes) {
return CollectionUtils.isEmpty(errorCodes) ? null : errorCodes.stream()
- .map(errorCode -> new MapErrorCodeToDto().applyMapping(errorCode, ErrorCodeDto.class))
- .collect(Collectors.toList());
+ .map(errorCode -> new MapErrorCodeToDto().applyMapping(errorCode, ErrorCodeDto.class))
+ .collect(Collectors.toList());
}
@Override
@@ -136,8 +134,6 @@ public class MapValidationResponseToDto
target.setLicensingDataErrors(mapErrorCodes(source.getLicensingDataErrors()));
target.setUploadDataErrors(mapUploadDataErrors(source.getUploadDataErrors()));
target.setQuestionnaireValidationResult(
- mapQuestionnaireValidationResult(source.getQuestionnaireValidationResult()));
- target.setComponentValidationResult(mapcomponentValidationResult(source.getComponentValidationResult()));
- target.setDeploymentFlavorValidationResult(mapdeploymentFlavorValidationResult(source.getDeploymentFlavorValidationResult()));
+ mapQuestionnaireValidationResult(source.getQuestionnaireValidationResult()));
}
}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapVersionedVendorSoftwareProductInfoToVspDetailsDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapVersionedVendorSoftwareProductInfoToVspDetailsDto.java
index 9093da599f..815135f834 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapVersionedVendorSoftwareProductInfoToVspDetailsDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapVersionedVendorSoftwareProductInfoToVspDetailsDto.java
@@ -45,8 +45,10 @@ public class MapVersionedVendorSoftwareProductInfoToVspDetailsDto
target.setSubCategory(vsp.getSubCategory());
target.setVendorId(vsp.getVendorId());
target.setVendorName(vsp.getVendorName());
+ target.setOnboardingOrigin(vsp.getOnboardingOrigin());
target.setLicensingVersion(vsp.getVlmVersion() == null ? null : new VersionDto(vsp.getVlmVersion().toString(), vsp.getVlmVersion().toString()));
target.setIsOldVersion("False");
+ target.setNetworkPackageName(vsp.getNetworkPackageName());
if (vsp.getLicenseAgreement() != null || vsp.getFeatureGroups() != null) {
LicensingData licensingData = new LicensingData();
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapVspDescriptionDtoToVspDetails.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapVspDescriptionDtoToVspDetails.java
index 9808bbb2b6..ba3d92e5d2 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapVspDescriptionDtoToVspDetails.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/mapping/MapVspDescriptionDtoToVspDetails.java
@@ -39,6 +39,8 @@ public class MapVspDescriptionDtoToVspDetails extends MappingBase<VspDescription
target.setVendorName(source.getVendorName());
target.setVendorId(source.getVendorId());
target.setOnboardingMethod(source.getOnboardingMethod());
+ target.setOnboardingOrigin(source.getOnboardingOrigin());
+ target.setNetworkPackageName(source.getNetworkPackageName());
VersionDto vlmVersion = source.getLicensingVersion();
if (vlmVersion != null) {
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java
index 0793e9473e..07cef57251 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java
@@ -1,10 +1,10 @@
package org.openecomp.sdcrests.vsp.rest.services;
import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.lang3.tuple.Pair;
+import org.apache.cxf.jaxrs.ext.multipart.Attachment;
import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
import org.openecomp.sdc.common.errors.Messages;
-import org.openecomp.sdc.datatypes.error.ErrorLevel;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.logging.context.MdcUtil;
@@ -32,11 +32,11 @@ import javax.ws.rs.core.Response;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
import java.util.Optional;
+import static org.openecomp.core.utilities.file.FileUtils.getFileExtension;
+import static org.openecomp.core.utilities.file.FileUtils.getNetworkPackageName;
+
@Named
@Service("orchestrationTemplateCandidate")
@Scope(value = "prototype")
@@ -48,31 +48,35 @@ public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplate
LoggerFactory.getLogger(OrchestrationTemplateCandidateImpl.class);
@Override
- public Response upload(String vspId, String versionId, InputStream heatFileToUpload,
+ public Response upload(String vspId, String versionId, Attachment fileToUpload,
String user) {
MdcUtil.initMdc(LoggerServiceName.Upload_File.toString());
logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.UPLOAD_HEAT + vspId);
-
+ String filename = fileToUpload.getContentDisposition().getParameter("filename");
UploadFileResponse uploadFileResponse = candidateManager
.upload(vspId, resolveVspVersion(vspId, null, user, VersionableEntityAction
- .Write), heatFileToUpload, user);
+ .Write), fileToUpload.getObject(InputStream.class), user, getFileExtension(filename),
+ getNetworkPackageName(filename));
UploadFileResponseDto uploadFileResponseDto = new MapUploadFileResponseToUploadFileResponseDto()
.applyMapping(uploadFileResponse, UploadFileResponseDto.class);
return Response.ok(uploadFileResponseDto).build();
}
+
+
@Override
public Response get(String vspId, String versionId, String user) throws IOException {
- Optional<byte[]> zipFile =
- candidateManager
- .get(vspId, resolveVspVersion(vspId, null, user, VersionableEntityAction.Read), user);
+
+ Optional<Pair<String, byte[]>> zipFile = candidateManager
+ .get(vspId, resolveVspVersion(vspId, null, user, VersionableEntityAction.Read), user);
if (!zipFile.isPresent()) {
return Response.status(Response.Status.NOT_FOUND).build();
}
- Response.ResponseBuilder response = Response.ok(zipFile.get());
- response.header("Content-Disposition", "attachment; filename=HeatCandidate.zip");
+ Response.ResponseBuilder response = Response.ok(zipFile.get().getRight());
+ String filename = "Candidate." + zipFile.get().getLeft();
+ response.header("Content-Disposition", "attachment; filename=" + filename);
return response.build();
}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java
index 8f2e73bff6..0b73cbcee6 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java
@@ -47,14 +47,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.VersionedVendorSoftwareProd
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.types.VersionInfo;
import org.openecomp.sdc.versioning.types.VersionableEntityAction;
-import org.openecomp.sdcrests.vendorsoftwareproducts.types.PackageInfoDto;
-import org.openecomp.sdcrests.vendorsoftwareproducts.types.QuestionnaireResponseDto;
-import org.openecomp.sdcrests.vendorsoftwareproducts.types.ValidationResponseDto;
-import org.openecomp.sdcrests.vendorsoftwareproducts.types.VersionSoftwareProductActionRequestDto;
-import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspComputeDto;
-import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspCreationDto;
-import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspDescriptionDto;
-import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspDetailsDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.*;
import org.openecomp.sdcrests.vsp.rest.VendorSoftwareProducts;
import org.openecomp.sdcrests.vsp.rest.mapping.MapComputeEntityToVspComputeDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapPackageInfoToPackageInfoDto;
@@ -100,9 +93,13 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
+ vspDescriptionDto.getName());
VspCreationDto vspCreationDto = null;
- switch (vspDescriptionDto.getOnboardingMethod()) {
- case "HEAT":
- case "Manual":
+ OnboardingMethod onboardingMethod = OnboardingMethod.valueOf(vspDescriptionDto.getOnboardingMethod());
+ if (onboardingMethod == null){
+ return handleUnkownOnboardingMethod();
+ }
+ switch (onboardingMethod) {
+ case NetworkPackage:
+ case Manual:
VspDetails vspDetails = new MapVspDescriptionDtoToVspDetails().
applyMapping(vspDescriptionDto, VspDetails.class);
@@ -112,17 +109,21 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
vspCreationDto = mapping.applyMapping(vspDetails, VspCreationDto.class);
break;
default:
- ErrorCode onboardingMethodUpdateErrorCode = OnboardingMethodErrorBuilder
- .getInvalidOnboardingMethodErrorBuilder();
- MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
- LoggerTragetServiceName.ADD_VSP, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), onboardingMethodUpdateErrorCode.message());
- throw new CoreException(onboardingMethodUpdateErrorCode);
+ return handleUnkownOnboardingMethod();
}
return Response.ok(vspCreationDto).build();
}
+ private Response handleUnkownOnboardingMethod() {
+ ErrorCode onboardingMethodUpdateErrorCode = OnboardingMethodErrorBuilder
+ .getInvalidOnboardingMethodErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
+ LoggerTragetServiceName.ADD_VSP, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), onboardingMethodUpdateErrorCode.message());
+ throw new CoreException(onboardingMethodUpdateErrorCode);
+ }
+
@Override
public Response listVsps(String versionFilter, String user) {
MdcUtil.initMdc(LoggerServiceName.List_VSP.toString());
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/OnboardingMethod.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/OnboardingMethod.java
index 3059efb171..0db4b0476d 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/OnboardingMethod.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/OnboardingMethod.java
@@ -1,6 +1,6 @@
package org.openecomp.sdcrests.vendorsoftwareproducts.types;
public enum OnboardingMethod {
- HEAT,
+ NetworkPackage,
Manual;
}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/UploadFileResponseDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/UploadFileResponseDto.java
index a79c70a4d2..3bf2e8ced1 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/UploadFileResponseDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/UploadFileResponseDto.java
@@ -32,6 +32,8 @@ import java.util.Map;
public class UploadFileResponseDto {
private Map<String, List<ErrorMessage>> errors;
private UploadFileStatus status;
+ private String onboardingOrigin;
+ private String networkPackageName;
public Map<String, List<ErrorMessage>> getErrors() {
return errors;
@@ -49,4 +51,19 @@ public class UploadFileResponseDto {
this.status = status;
}
+ public String getOnboardingOrigin() {
+ return onboardingOrigin;
+ }
+
+ public void setOnboardingOrigin(String onboardingOrigin) {
+ this.onboardingOrigin = onboardingOrigin;
+ }
+
+ public String getNetworkPackageName() {
+ return networkPackageName;
+ }
+
+ public void setNetworkPackageName(String networkPackageName) {
+ this.networkPackageName = networkPackageName;
+ }
}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDescriptionDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDescriptionDto.java
index 80b68deeeb..9062f89d22 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDescriptionDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDescriptionDto.java
@@ -44,6 +44,8 @@ public class VspDescriptionDto {
@NotNull
private String onboardingMethod;
+ private String onboardingOrigin;
+ private String networkPackageName;
public String getName() {
return name;
@@ -124,4 +126,20 @@ public class VspDescriptionDto {
public void setOnboardingMethod(String onboardingMethod) {
this.onboardingMethod = onboardingMethod;
}
+
+ public String getOnboardingOrigin() {
+ return onboardingOrigin;
+ }
+
+ public void setOnboardingOrigin(String onboardingOrigin) {
+ this.onboardingOrigin = onboardingOrigin;
+ }
+
+ public String getNetworkPackageName() {
+ return networkPackageName;
+ }
+
+ public void setNetworkPackageName(String networkPackageName) {
+ this.networkPackageName = networkPackageName;
+ }
}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDetailsDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDetailsDto.java
index d105acb406..28a77f2e66 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDetailsDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/VspDetailsDto.java
@@ -41,7 +41,8 @@ public class VspDetailsDto extends VspDescriptionDto {
private String lockingUser;
private ValidationStructureList validationData;
private String isOldVersion;
-
+ private String onboardingOrigin;
+ private String networkPackageName;
public String getId() {
return id;
}
@@ -104,8 +105,21 @@ public class VspDetailsDto extends VspDescriptionDto {
public void setValidationData(ValidationStructureList validationData) {
this.validationData = validationData;
+ }
+
+ public String getOnboardingOrigin() {
+ return onboardingOrigin;
+ }
+ public void setOnboardingOrigin(String onboardingOrigin) {
+ this.onboardingOrigin = onboardingOrigin;
+ }
+ public String getNetworkPackageName() {
+ return networkPackageName;
}
+ public void setNetworkPackageName(String networkPackageName) {
+ this.networkPackageName = networkPackageName;
+ }
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java
index a755fe8957..1acd44511a 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java
@@ -98,7 +98,7 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
private static final Logger logger =
- LoggerFactory.getLogger(VendorLicenseManagerImpl.class);
+ LoggerFactory.getLogger(VendorLicenseManagerImpl.class);
public VendorLicenseManagerImpl(VersioningManager versioningManager,
VendorLicenseFacade vendorLicenseFacade,
@@ -122,9 +122,9 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
private static void sortVlmListByModificationTimeDescOrder(
- List<VersionedVendorLicenseModel> vendorLicenseModels) {
+ List<VersionedVendorLicenseModel> vendorLicenseModels) {
vendorLicenseModels.sort((o1, o2) -> o2.getVendorLicenseModel().getWritetimeMicroSeconds()
- .compareTo(o1.getVendorLicenseModel().getWritetimeMicroSeconds()));
+ .compareTo(o1.getVendorLicenseModel().getWritetimeMicroSeconds()));
}
@Override
@@ -133,7 +133,7 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelId);
Version newVersion = versioningManager
- .checkout(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelId, user);
+ .checkout(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelId, user);
ActivityLogEntity activityLogEntity = new ActivityLogEntity(vendorLicenseModelId, String.valueOf(newVersion.getMajor()+1),
ActivityType.CHECKOUT.toString(), user, true, "", "");
@@ -151,7 +151,7 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelId);
Version newVersion = versioningManager
- .undoCheckout(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelId, user);
+ .undoCheckout(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelId, user);
vendorLicenseFacade.updateVlmLastModificationTime(vendorLicenseModelId, newVersion);
mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelId);
@@ -191,8 +191,8 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
mdcDataDebugMessage.debugEntryMessage(null);
Map<String, VersionInfo> idToVersionsInfo = versioningManager
- .listEntitiesVersionInfo(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, user,
- VersionableEntityAction.Read);
+ .listEntitiesVersionInfo(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, user,
+ VersionableEntityAction.Read);
List<VersionedVendorLicenseModel> vendorLicenseModels = new ArrayList<>();
for (Map.Entry<String, VersionInfo> entry : idToVersionsInfo.entrySet()) {
@@ -213,7 +213,7 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
try {
VendorLicenseModelEntity vlm =
- vendorLicenseModelDao.get(new VendorLicenseModelEntity(entry.getKey(), version));
+ vendorLicenseModelDao.get(new VendorLicenseModelEntity(entry.getKey(), version));
if (vlm != null) {
VersionedVendorLicenseModel versionedVlm = new VersionedVendorLicenseModel();
versionedVlm.setVendorLicenseModel(vlm);
@@ -221,11 +221,11 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
vendorLicenseModels.add(versionedVlm);
}
}catch(RuntimeException rte){
- logger.error("Error trying to retrieve vlm["+entry.getKey()+"] version["+version.toString
- ()+"] " +
- "message:"+rte
- .getMessage());
- }
+ logger.error("Error trying to retrieve vlm["+entry.getKey()+"] version["+version.toString
+ ()+"] " +
+ "message:"+rte
+ .getMessage());
+ }
}
sortVlmListByModificationTimeDescOrder(vendorLicenseModels);
@@ -253,18 +253,18 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelEntity.getId());
Version version = resloveVersion(vendorLicenseModelEntity.getId(),null,
- getVersionInfo(vendorLicenseModelEntity.getId(), VersionableEntityAction.Write, user),
- user);
+ getVersionInfo(vendorLicenseModelEntity.getId(), VersionableEntityAction.Write, user),
+ user);
vendorLicenseModelEntity.setVersion(version);
String existingVendorName = vendorLicenseModelDao.get(vendorLicenseModelEntity).getVendorName();
updateUniqueName(VendorLicenseConstants.UniqueValues.VENDOR_NAME, existingVendorName,
- vendorLicenseModelEntity.getVendorName());
+ vendorLicenseModelEntity.getVendorName());
vendorLicenseModelDao.update(vendorLicenseModelEntity);
vendorLicenseFacade
- .updateVlmLastModificationTime(vendorLicenseModelEntity.getId(), version);
+ .updateVlmLastModificationTime(vendorLicenseModelEntity.getId(), version);
mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelEntity.getId());
}
@@ -278,8 +278,8 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
@Override
public void deleteVendorLicenseModel(String vlmId, String user) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.DELETE_ENTITY, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.UNSUPPORTED_OPERATION);
+ LoggerTragetServiceName.DELETE_ENTITY, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.UNSUPPORTED_OPERATION);
throw new UnsupportedOperationException(VendorLicenseConstants.UNSUPPORTED_OPERATION_ERROR);
}
@@ -289,7 +289,7 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId);
mdcDataDebugMessage.debugExitMessage("VLM id", vlmId);
LicenseAgreementEntity licenseAgreementEntity = createLicenseAgreementForList(vlmId, version,
- user);
+ user);
// return licenseAgreementDao.list(new LicenseAgreementEntity(vlmId, VersioningUtil
// .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user),
// null));
@@ -300,9 +300,9 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
public LicenseAgreementEntity createLicenseAgreement(LicenseAgreementEntity licenseAgreement,
String user) {
mdcDataDebugMessage
- .debugEntryMessage("VLM id", licenseAgreement.getVendorLicenseModelId());
+ .debugEntryMessage("VLM id", licenseAgreement.getVendorLicenseModelId());
mdcDataDebugMessage
- .debugExitMessage("VLM id", licenseAgreement.getVendorLicenseModelId());
+ .debugExitMessage("VLM id", licenseAgreement.getVendorLicenseModelId());
return vendorLicenseFacade.createLicenseAgreement(licenseAgreement, user);
}
@@ -311,35 +311,35 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
Set<String> addedFeatureGroupIds,
Set<String> removedFeatureGroupIds, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, LA id", licenseAgreement
- .getVendorLicenseModelId(), licenseAgreement.getId());
+ .getVendorLicenseModelId(), licenseAgreement.getId());
Version version = VersioningUtil.resolveVersion(licenseAgreement.getVersion(),
- getVersionInfo(licenseAgreement.getVendorLicenseModelId(), VersionableEntityAction.Write,
- user), user);
+ getVersionInfo(licenseAgreement.getVendorLicenseModelId(), VersionableEntityAction.Write,
+ user), user);
licenseAgreement.setVersion(version);
LicenseAgreementEntity retrieved = licenseAgreementDao.get(licenseAgreement);
VersioningUtil
- .validateEntityExistence(retrieved, licenseAgreement, VendorLicenseModelEntity.ENTITY_TYPE);
+ .validateEntityExistence(retrieved, licenseAgreement, VendorLicenseModelEntity.ENTITY_TYPE);
VersioningUtil.validateContainedEntitiesExistence(new FeatureGroupEntity().getEntityType(),
- removedFeatureGroupIds, retrieved, retrieved.getFeatureGroupIds());
+ removedFeatureGroupIds, retrieved, retrieved.getFeatureGroupIds());
VersioningUtil.validateEntitiesExistence(addedFeatureGroupIds,
- new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(), version, null),
- featureGroupDao, VendorLicenseModelEntity.ENTITY_TYPE);
+ new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(), version, null),
+ featureGroupDao, VendorLicenseModelEntity.ENTITY_TYPE);
updateUniqueName(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME,
- retrieved.getName(), licenseAgreement.getName(), licenseAgreement.getVendorLicenseModelId(),
- licenseAgreement.getVersion().toString());
+ retrieved.getName(), licenseAgreement.getName(), licenseAgreement.getVendorLicenseModelId(),
+ licenseAgreement.getVersion().toString());
licenseAgreementDao.updateColumnsAndDeltaFeatureGroupIds(licenseAgreement, addedFeatureGroupIds,
- removedFeatureGroupIds);
+ removedFeatureGroupIds);
addFeatureGroupsToLicenseAgreementRef(addedFeatureGroupIds, licenseAgreement);
removeFeatureGroupsToLicenseAgreementRef(removedFeatureGroupIds, licenseAgreement);
vendorLicenseFacade
- .updateVlmLastModificationTime(licenseAgreement.getVendorLicenseModelId(), version);
+ .updateVlmLastModificationTime(licenseAgreement.getVendorLicenseModelId(), version);
mdcDataDebugMessage.debugExitMessage("VLM id, LA id", licenseAgreement
- .getVendorLicenseModelId(), licenseAgreement.getId());
+ .getVendorLicenseModelId(), licenseAgreement.getId());
}
@Override
@@ -357,9 +357,9 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
mdcDataDebugMessage.debugEntryMessage("VLM id, LA id", vlmId, licenseAgreementId);
version = VersioningUtil
- .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Write, user), user);
+ .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Write, user), user);
LicenseAgreementEntity input =
- new LicenseAgreementEntity(vlmId, version, licenseAgreementId);
+ new LicenseAgreementEntity(vlmId, version, licenseAgreementId);
LicenseAgreementEntity retrieved = licenseAgreementDao.get(input);
VersioningUtil.validateEntityExistence(retrieved, input, VendorLicenseModelEntity.ENTITY_TYPE);
@@ -368,11 +368,11 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
licenseAgreementDao.delete(retrieved);
deleteUniqueName(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME,
- retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
- retrieved.getName());
+ retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
+ retrieved.getName());
vendorLicenseFacade
- .updateVlmLastModificationTime(input.getVendorLicenseModelId(), input.getVersion());
+ .updateVlmLastModificationTime(input.getVendorLicenseModelId(), input.getVersion());
mdcDataDebugMessage.debugExitMessage("VLM id, LA id", vlmId, licenseAgreementId);
}
@@ -388,7 +388,7 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
@Override
public FeatureGroupEntity createFeatureGroup(FeatureGroupEntity featureGroup, String user) {
mdcDataDebugMessage
- .debugEntryMessage("VLM id", featureGroup.getVendorLicenseModelId());
+ .debugEntryMessage("VLM id", featureGroup.getVendorLicenseModelId());
mdcDataDebugMessage.debugExitMessage("VLM id", featureGroup.getId());
return vendorLicenseFacade.createFeatureGroup(featureGroup, user);
}
@@ -401,32 +401,32 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
Set<String> removedEntitlementPools,
String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, FG id", featureGroup
- .getVendorLicenseModelId(), featureGroup.getId());
+ .getVendorLicenseModelId(), featureGroup.getId());
Version version = VersioningUtil.resolveVersion(featureGroup.getVersion(),
- getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Write, user),
- user);
+ getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Write, user),
+ user);
featureGroup.setVersion(version);
FeatureGroupEntity retrieved = featureGroupDao.get(featureGroup);
VersioningUtil
- .validateEntityExistence(retrieved, featureGroup, VendorLicenseModelEntity.ENTITY_TYPE);
+ .validateEntityExistence(retrieved, featureGroup, VendorLicenseModelEntity.ENTITY_TYPE);
VersioningUtil.validateContainedEntitiesExistence(new LicenseKeyGroupEntity().getEntityType(),
- removedLicenseKeyGroups, retrieved, retrieved.getLicenseKeyGroupIds());
+ removedLicenseKeyGroups, retrieved, retrieved.getLicenseKeyGroupIds());
VersioningUtil.validateContainedEntitiesExistence(new EntitlementPoolEntity().getEntityType(),
- removedEntitlementPools, retrieved, retrieved.getEntitlementPoolIds());
+ removedEntitlementPools, retrieved, retrieved.getEntitlementPoolIds());
VersioningUtil.validateEntitiesExistence(addedLicenseKeyGroups,
- new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(), version, null),
- licenseKeyGroupDao, VendorLicenseModelEntity.ENTITY_TYPE);
+ new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(), version, null),
+ licenseKeyGroupDao, VendorLicenseModelEntity.ENTITY_TYPE);
VersioningUtil.validateEntitiesExistence(addedEntitlementPools,
- new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(), version, null),
- entitlementPoolDao, VendorLicenseModelEntity.ENTITY_TYPE);
+ new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(), version, null),
+ entitlementPoolDao, VendorLicenseModelEntity.ENTITY_TYPE);
updateUniqueName(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME,
- retrieved.getName(), featureGroup.getName(), featureGroup.getVendorLicenseModelId(),
- featureGroup.getVersion().toString());
+ retrieved.getName(), featureGroup.getName(), featureGroup.getVendorLicenseModelId(),
+ featureGroup.getVersion().toString());
addLicenseKeyGroupsToFeatureGroupsRef(addedLicenseKeyGroups, featureGroup);
removeLicenseKeyGroupsToFeatureGroupsRef(removedLicenseKeyGroups, featureGroup);
@@ -434,59 +434,59 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
removeEntitlementPoolsToFeatureGroupsRef(removedEntitlementPools, featureGroup);
featureGroupDao.updateFeatureGroup(featureGroup, addedEntitlementPools, removedEntitlementPools,
- addedLicenseKeyGroups, removedLicenseKeyGroups);
+ addedLicenseKeyGroups, removedLicenseKeyGroups);
vendorLicenseFacade
- .updateVlmLastModificationTime(featureGroup.getVendorLicenseModelId(), version);
+ .updateVlmLastModificationTime(featureGroup.getVendorLicenseModelId(), version);
mdcDataDebugMessage.debugExitMessage("VLM id, FG id", featureGroup
- .getVendorLicenseModelId(), featureGroup.getId());
+ .getVendorLicenseModelId(), featureGroup.getId());
}
@Override
public FeatureGroupModel getFeatureGroupModel(FeatureGroupEntity featureGroup, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, FG id",
- featureGroup.getVendorLicenseModelId(), featureGroup.getId());
+ featureGroup.getVendorLicenseModelId(), featureGroup.getId());
mdcDataDebugMessage.debugExitMessage("VLM id, FG id",
- featureGroup.getVendorLicenseModelId(), featureGroup.getId());
+ featureGroup.getVendorLicenseModelId(), featureGroup.getId());
return vendorLicenseFacade.getFeatureGroupModel(featureGroup, user);
}
@Override
public void deleteFeatureGroup(FeatureGroupEntity featureGroup, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, FG id",
- featureGroup.getVendorLicenseModelId(), featureGroup.getId());
+ featureGroup.getVendorLicenseModelId(), featureGroup.getId());
Version version = VersioningUtil.resolveVersion(featureGroup.getVersion(),
- getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
- user), user);
+ getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
+ user), user);
featureGroup.setVersion(version);
FeatureGroupEntity retrieved = featureGroupDao.get(featureGroup);
VersioningUtil
- .validateEntityExistence(retrieved, featureGroup, VendorLicenseModelEntity.ENTITY_TYPE);
+ .validateEntityExistence(retrieved, featureGroup, VendorLicenseModelEntity.ENTITY_TYPE);
removeLicenseKeyGroupsToFeatureGroupsRef(retrieved.getLicenseKeyGroupIds(), featureGroup);
removeEntitlementPoolsToFeatureGroupsRef(retrieved.getEntitlementPoolIds(), featureGroup);
for (String licenceAgreementId : retrieved.getReferencingLicenseAgreements()) {
licenseAgreementDao.removeFeatureGroup(
- new LicenseAgreementEntity(featureGroup.getVendorLicenseModelId(), version,
- licenceAgreementId), featureGroup.getId());
+ new LicenseAgreementEntity(featureGroup.getVendorLicenseModelId(), version,
+ licenceAgreementId), featureGroup.getId());
}
featureGroupDao.delete(featureGroup);
deleteUniqueName(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME,
- retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
- retrieved.getName());
+ retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
+ retrieved.getName());
vendorLicenseFacade.updateVlmLastModificationTime(featureGroup.getVendorLicenseModelId(),
- featureGroup.getVersion());
+ featureGroup.getVersion());
mdcDataDebugMessage
- .debugExitMessage("VLM id, FG id",
- featureGroup.getVendorLicenseModelId(), featureGroup.getId());
+ .debugExitMessage("VLM id, FG id",
+ featureGroup.getVendorLicenseModelId(), featureGroup.getId());
}
@Override
@@ -501,61 +501,61 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
public EntitlementPoolEntity createEntitlementPool(EntitlementPoolEntity entitlementPool,
String user) {
mdcDataDebugMessage
- .debugEntryMessage("VLM id", entitlementPool.getVendorLicenseModelId());
+ .debugEntryMessage("VLM id", entitlementPool.getVendorLicenseModelId());
mdcDataDebugMessage
- .debugExitMessage("VLM id", entitlementPool.getVendorLicenseModelId());
+ .debugExitMessage("VLM id", entitlementPool.getVendorLicenseModelId());
entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool
- .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z"
- : null) : null);
+ .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z"
+ : null) : null);
entitlementPool.setExpiryDate(entitlementPool.getExpiryDate() != null ? (entitlementPool
- .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z"
- : null) : null);
+ .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z"
+ : null) : null);
validateCreateDate(entitlementPool.getStartDate(), entitlementPool.getExpiryDate(),
- entitlementPool.getVendorLicenseModelId());
+ entitlementPool.getVendorLicenseModelId());
return vendorLicenseFacade.createEntitlementPool(entitlementPool, user);
}
private void validateCreateDate(String startDate, String expiryDate, String vendorLicenseModelId){
mdcDataDebugMessage.debugEntryMessage("Start date and end date", startDate
- +" "+expiryDate);
+ +" "+expiryDate);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'");
if(startDate != null && expiryDate != null) {
if (LocalDate.parse(startDate, formatter).atStartOfDay().isBefore
- (LocalDate.now().atStartOfDay()) || LocalDate.parse(expiryDate, formatter).atStartOfDay()
+ (LocalDate.now().atStartOfDay()) || LocalDate.parse(expiryDate, formatter).atStartOfDay()
.isEqual(LocalDate.parse(startDate, formatter).atStartOfDay()) || LocalDate
- .parse(expiryDate, formatter).isBefore(LocalDate.parse(startDate, formatter))) {
+ .parse(expiryDate, formatter).isBefore(LocalDate.parse(startDate, formatter))) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
+ LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
throw new CoreException(
- new InvalidDateErrorBuilder(vendorLicenseModelId)
- .build());
+ new InvalidDateErrorBuilder(vendorLicenseModelId)
+ .build());
}
}
if(startDate != null && expiryDate == null) {
if (LocalDate.parse(startDate, formatter).atStartOfDay().isBefore
- (LocalDate.now().atStartOfDay())) {
+ (LocalDate.now().atStartOfDay())) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
+ LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
throw new CoreException(
- new InvalidDateErrorBuilder(vendorLicenseModelId)
- .build());
+ new InvalidDateErrorBuilder(vendorLicenseModelId)
+ .build());
}
}
if(startDate == null && expiryDate != null) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
+ LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
throw new CoreException(
- new InvalidDateErrorBuilder(vendorLicenseModelId)
- .build());
+ new InvalidDateErrorBuilder(vendorLicenseModelId)
+ .build());
}
@@ -564,30 +564,30 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
private void validateUpdateDate(String startDate, String expiryDate, String vendorLicenseModelId){
mdcDataDebugMessage.debugEntryMessage("Start date and end date", startDate
- +" "+ expiryDate);
+ +" "+ expiryDate);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'");
if(startDate != null && expiryDate != null) {
if (LocalDate.parse(expiryDate, formatter).atStartOfDay()
- .isEqual(LocalDate.parse(startDate, formatter).atStartOfDay()) ||
- LocalDate.parse(expiryDate, formatter).isBefore(LocalDate.parse(startDate, formatter))) {
+ .isEqual(LocalDate.parse(startDate, formatter).atStartOfDay()) ||
+ LocalDate.parse(expiryDate, formatter).isBefore(LocalDate.parse(startDate, formatter))) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
+ LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
throw new CoreException(
- new InvalidDateErrorBuilder(vendorLicenseModelId)
- .build());
+ new InvalidDateErrorBuilder(vendorLicenseModelId)
+ .build());
}
}
if(startDate == null && expiryDate != null) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
+ LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
throw new CoreException(
- new InvalidDateErrorBuilder(vendorLicenseModelId)
- .build());
+ new InvalidDateErrorBuilder(vendorLicenseModelId)
+ .build());
}
@@ -597,77 +597,77 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
@Override
public void updateEntitlementPool(EntitlementPoolEntity entitlementPool, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool
- .getVendorLicenseModelId(), entitlementPool.getId());
+ .getVendorLicenseModelId(), entitlementPool.getId());
entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool
- .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z"
- : null) : null);
+ .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z"
+ : null) : null);
entitlementPool.setExpiryDate(entitlementPool.getExpiryDate() != null ? (entitlementPool
- .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z"
- : null) : null);
+ .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z"
+ : null) : null);
validateUpdateDate(entitlementPool.getStartDate(), entitlementPool.getExpiryDate(),
- entitlementPool.getVendorLicenseModelId());
+ entitlementPool.getVendorLicenseModelId());
Version version = VersioningUtil.resolveVersion(entitlementPool.getVersion(),
- getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write,
- user), user);
+ getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write,
+ user), user);
vendorLicenseFacade
- .updateVlmLastModificationTime(entitlementPool.getVendorLicenseModelId(), version);
+ .updateVlmLastModificationTime(entitlementPool.getVendorLicenseModelId(), version);
vendorLicenseFacade.updateEntitlementPool(entitlementPool, user);
mdcDataDebugMessage.debugExitMessage("VLM id, EP id", entitlementPool
- .getVendorLicenseModelId(), entitlementPool.getId());
+ .getVendorLicenseModelId(), entitlementPool.getId());
}
@Override
public EntitlementPoolEntity getEntitlementPool(EntitlementPoolEntity entitlementPool,
String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool
- .getVendorLicenseModelId(), entitlementPool.getId());
+ .getVendorLicenseModelId(), entitlementPool.getId());
entitlementPool.setVersion(VersioningUtil.resolveVersion(entitlementPool.getVersion(),
- getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Read,
- user), user));
+ getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Read,
+ user), user));
EntitlementPoolEntity retrieved = entitlementPoolDao.get(entitlementPool);
VersioningUtil
- .validateEntityExistence(retrieved, entitlementPool, VendorLicenseModelEntity.ENTITY_TYPE);
+ .validateEntityExistence(retrieved, entitlementPool, VendorLicenseModelEntity.ENTITY_TYPE);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'");
DateTimeFormatter targetFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
if(retrieved.getStartDate() != null){
retrieved.setStartDate(LocalDate.parse(retrieved.getStartDate(),formatter).format
- (targetFormatter));
+ (targetFormatter));
}
if(retrieved.getExpiryDate() != null){
retrieved.setExpiryDate(LocalDate.parse(retrieved.getExpiryDate(),formatter).format
- (targetFormatter));
+ (targetFormatter));
}
mdcDataDebugMessage.debugExitMessage("VLM id, EP id", entitlementPool
- .getVendorLicenseModelId(), entitlementPool.getId());
+ .getVendorLicenseModelId(), entitlementPool.getId());
return retrieved;
}
@Override
public void deleteEntitlementPool(EntitlementPoolEntity entitlementPool, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool
- .getVendorLicenseModelId(), entitlementPool.getId());
+ .getVendorLicenseModelId(), entitlementPool.getId());
Version version = VersioningUtil.resolveVersion(entitlementPool.getVersion(),
- getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write,
- user), user);
+ getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write,
+ user), user);
entitlementPool.setVersion(version);
EntitlementPoolEntity retrieved = entitlementPoolDao.get(entitlementPool);
VersioningUtil
- .validateEntityExistence(retrieved, entitlementPool, VendorLicenseModelEntity.ENTITY_TYPE);
+ .validateEntityExistence(retrieved, entitlementPool, VendorLicenseModelEntity.ENTITY_TYPE);
for (String referencingFeatureGroupId : retrieved.getReferencingFeatureGroups()) {
featureGroupDao.removeEntitlementPool(
- new FeatureGroupEntity(entitlementPool.getVendorLicenseModelId(), version,
- referencingFeatureGroupId), entitlementPool.getId());
+ new FeatureGroupEntity(entitlementPool.getVendorLicenseModelId(), version,
+ referencingFeatureGroupId), entitlementPool.getId());
}
deleteChildLimits(entitlementPool.getVendorLicenseModelId(), entitlementPool.getVersion(), entitlementPool.getId(), user);
@@ -675,22 +675,22 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
entitlementPoolDao.delete(entitlementPool);
deleteUniqueName(VendorLicenseConstants.UniqueValues.ENTITLEMENT_POOL_NAME,
- retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
- retrieved.getName());
+ retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
+ retrieved.getName());
vendorLicenseFacade.updateVlmLastModificationTime(entitlementPool.getVendorLicenseModelId(),
- entitlementPool.getVersion());
+ entitlementPool.getVersion());
mdcDataDebugMessage.debugExitMessage("VLM id, EP id", entitlementPool
- .getVendorLicenseModelId(), entitlementPool.getId());
+ .getVendorLicenseModelId(), entitlementPool.getId());
}
protected void deleteChildLimits(String vlmId, Version version, String epLkgId, String user) {
- Optional<Collection<LimitEntity>> limitEntities = Optional.ofNullable(
- listLimits(vlmId, version, epLkgId, user));
- limitEntities.ifPresent(entities->
- entities.forEach(entity->
- deleteLimit(entity, user)));
+ Optional<Collection<LimitEntity>> limitEntities = Optional.ofNullable(
+ listLimits(vlmId, version, epLkgId, user));
+ limitEntities.ifPresent(entities->
+ entities.forEach(entity->
+ deleteLimit(entity, user)));
}
@Override
@@ -705,87 +705,87 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
public LicenseKeyGroupEntity createLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup,
String user) {
mdcDataDebugMessage
- .debugEntryMessage("VLM id", licenseKeyGroup.getVendorLicenseModelId());
+ .debugEntryMessage("VLM id", licenseKeyGroup.getVendorLicenseModelId());
mdcDataDebugMessage.debugExitMessage("VLM id", licenseKeyGroup
- .getVendorLicenseModelId());
+ .getVendorLicenseModelId());
licenseKeyGroup.setStartDate(licenseKeyGroup.getStartDate() != null ? (licenseKeyGroup
- .getStartDate().trim().length() != 0 ? licenseKeyGroup.getStartDate()+"T00:00:00Z"
- : null) : null);
+ .getStartDate().trim().length() != 0 ? licenseKeyGroup.getStartDate()+"T00:00:00Z"
+ : null) : null);
licenseKeyGroup.setExpiryDate(licenseKeyGroup.getExpiryDate() != null ? (licenseKeyGroup
- .getExpiryDate().trim().length() != 0 ? licenseKeyGroup.getExpiryDate()+"T23:59:59Z"
- : null) : null);
+ .getExpiryDate().trim().length() != 0 ? licenseKeyGroup.getExpiryDate()+"T23:59:59Z"
+ : null) : null);
validateCreateDate(licenseKeyGroup.getStartDate(), licenseKeyGroup.getExpiryDate(),
- licenseKeyGroup.getVendorLicenseModelId());
+ licenseKeyGroup.getVendorLicenseModelId());
return vendorLicenseFacade.createLicenseKeyGroup(licenseKeyGroup, user);
}
@Override
public void updateLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id", licenseKeyGroup
- .getVendorLicenseModelId(), licenseKeyGroup.getId());
+ .getVendorLicenseModelId(), licenseKeyGroup.getId());
licenseKeyGroup.setStartDate(licenseKeyGroup.getStartDate() != null ? (licenseKeyGroup
- .getStartDate().trim().length() != 0 ? licenseKeyGroup.getStartDate()+"T00:00:00Z"
- : null) : null);
+ .getStartDate().trim().length() != 0 ? licenseKeyGroup.getStartDate()+"T00:00:00Z"
+ : null) : null);
licenseKeyGroup.setExpiryDate(licenseKeyGroup.getExpiryDate() != null ? (licenseKeyGroup
- .getExpiryDate().trim().length() != 0 ? licenseKeyGroup.getExpiryDate()+"T23:59:59Z"
- : null) : null);
+ .getExpiryDate().trim().length() != 0 ? licenseKeyGroup.getExpiryDate()+"T23:59:59Z"
+ : null) : null);
validateUpdateDate(licenseKeyGroup.getStartDate(), licenseKeyGroup.getExpiryDate(),
- licenseKeyGroup.getVendorLicenseModelId());
+ licenseKeyGroup.getVendorLicenseModelId());
Version version = VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(),
- getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
- user), user);
+ getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
+ user), user);
vendorLicenseFacade
- .updateVlmLastModificationTime(licenseKeyGroup.getVendorLicenseModelId(), version);
+ .updateVlmLastModificationTime(licenseKeyGroup.getVendorLicenseModelId(), version);
vendorLicenseFacade.updateLicenseKeyGroup(licenseKeyGroup, user);
mdcDataDebugMessage.debugExitMessage("VLM id, LKG id", licenseKeyGroup
- .getVendorLicenseModelId(), licenseKeyGroup.getId());
+ .getVendorLicenseModelId(), licenseKeyGroup.getId());
}
@Override
public LicenseKeyGroupEntity getLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup,
String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id", licenseKeyGroup
- .getVendorLicenseModelId(), licenseKeyGroup.getId());
+ .getVendorLicenseModelId(), licenseKeyGroup.getId());
licenseKeyGroup.setVersion(VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(),
- getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Read,
- user), user));
+ getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Read,
+ user), user));
LicenseKeyGroupEntity retrieved = licenseKeyGroupDao.get(licenseKeyGroup);
VersioningUtil
- .validateEntityExistence(retrieved, licenseKeyGroup, VendorLicenseModelEntity.ENTITY_TYPE);
+ .validateEntityExistence(retrieved, licenseKeyGroup, VendorLicenseModelEntity.ENTITY_TYPE);
mdcDataDebugMessage.debugExitMessage("VLM id, LKG id", licenseKeyGroup
- .getVendorLicenseModelId(), licenseKeyGroup.getId());
+ .getVendorLicenseModelId(), licenseKeyGroup.getId());
return retrieved;
}
@Override
public void deleteLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id", licenseKeyGroup
- .getVendorLicenseModelId(), licenseKeyGroup.getId());
+ .getVendorLicenseModelId(), licenseKeyGroup.getId());
Version version = VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(),
- getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
- user), user);
+ getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
+ user), user);
licenseKeyGroup.setVersion(version);
LicenseKeyGroupEntity retrieved = licenseKeyGroupDao.get(licenseKeyGroup);
VersioningUtil
- .validateEntityExistence(retrieved, licenseKeyGroup, VendorLicenseModelEntity.ENTITY_TYPE);
+ .validateEntityExistence(retrieved, licenseKeyGroup, VendorLicenseModelEntity.ENTITY_TYPE);
for (String referencingFeatureGroupId : retrieved.getReferencingFeatureGroups()) {
featureGroupDao.removeLicenseKeyGroup(
- new FeatureGroupEntity(licenseKeyGroup.getVendorLicenseModelId(), version,
- referencingFeatureGroupId), licenseKeyGroup.getId());
+ new FeatureGroupEntity(licenseKeyGroup.getVendorLicenseModelId(), version,
+ referencingFeatureGroupId), licenseKeyGroup.getId());
}
deleteChildLimits(licenseKeyGroup.getVendorLicenseModelId(), licenseKeyGroup.getVersion(), licenseKeyGroup.getId(), user);
@@ -793,51 +793,53 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
licenseKeyGroupDao.delete(licenseKeyGroup);
deleteUniqueName(VendorLicenseConstants.UniqueValues.LICENSE_KEY_GROUP_NAME,
- retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
- retrieved.getName());
+ retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
+ retrieved.getName());
vendorLicenseFacade.updateVlmLastModificationTime(licenseKeyGroup.getVendorLicenseModelId(),
- licenseKeyGroup.getVersion());
+ licenseKeyGroup.getVersion());
mdcDataDebugMessage.debugExitMessage("VLM id, LKG id", licenseKeyGroup
- .getVendorLicenseModelId(), licenseKeyGroup.getId());
+ .getVendorLicenseModelId(), licenseKeyGroup.getId());
}
@Override
public LimitEntity createLimit(LimitEntity limit, String user) {
mdcDataDebugMessage
- .debugEntryMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
- .getEpLkgId());
+ .debugEntryMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
+ .getEpLkgId());
mdcDataDebugMessage
- .debugExitMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
- .getEpLkgId());
+ .debugExitMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
+ .getEpLkgId());
validateLimit(limit, user);
- return vendorLicenseFacade.createLimit(limit, user);
+ LimitEntity createdLimit = vendorLicenseFacade.createLimit(limit, user);
+ updateParentForLimit(limit,user);
+ return createdLimit;
}
private void validateLimit(LimitEntity limit, String user) {
Version version = VersioningUtil.resolveVersion(limit.getVersion(),
- getVersionInfo(limit.getVendorLicenseModelId(), VersionableEntityAction.Write,
- user), user);
+ getVersionInfo(limit.getVendorLicenseModelId(), VersionableEntityAction.Write,
+ user), user);
Collection<LimitEntity> limitList = listLimits(limit.getVendorLicenseModelId(),version
- ,limit.getEpLkgId(), user);
+ ,limit.getEpLkgId(), user);
if (!isLimitNameUnique(limitList,limit.getName(), limit.getType(), limit.getId())) {
final ErrorCode duplicateLimitNameErrorBuilder =
- LimitErrorBuilder.getDuplicateNameErrorbuilder(limit.getName(), limit.getType().name());
+ LimitErrorBuilder.getDuplicateNameErrorbuilder(limit.getName(), limit.getType().name());
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerServiceName.Create_LIMIT.toString(), ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(),
- duplicateLimitNameErrorBuilder.message());
+ LoggerServiceName.Create_LIMIT.toString(), ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(),
+ duplicateLimitNameErrorBuilder.message());
throw new CoreException(duplicateLimitNameErrorBuilder);
}
}
private boolean isLimitNameUnique(Collection<LimitEntity> limitList, String name, LimitType
- type, String id) {
+ type, String id) {
for (LimitEntity limit : limitList) {
if(limit.getName().equalsIgnoreCase(name) &&
- limit.getType().name().equalsIgnoreCase(type.name())) {
+ limit.getType().name().equalsIgnoreCase(type.name())) {
if(id != null && limit.getId().equals(id)){
continue;
}
@@ -865,9 +867,9 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
user), user);
limitEntity.setVersion(version);
- if(!isLimitPresent(limitEntity)){
+ if ( !isLimitPresent(limitEntity)) {
VersioningUtil
- .validateEntityExistence(null, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
+ .validateEntityExistence(null, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
}
LimitEntity retrieved = limitDao.get(limitEntity);
VersioningUtil
@@ -878,6 +880,8 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
vendorLicenseFacade.updateVlmLastModificationTime(limitEntity.getVendorLicenseModelId(),
limitEntity.getVersion());
+ updateParentForLimit(limitEntity,user);
+
mdcDataDebugMessage.debugExitMessage("VLM id, EP id, Limit Id", limitEntity
.getVendorLicenseModelId(), limitEntity.getEpLkgId(), limitEntity.getId());
}
@@ -885,14 +889,15 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
@Override
public void updateLimit(LimitEntity limit, String user) {
mdcDataDebugMessage
- .debugEntryMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
- .getEpLkgId());
+ .debugEntryMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
+ .getEpLkgId());
getLimit(limit,user);
validateLimit(limit, user);
vendorLicenseFacade.updateLimit(limit, user);
+ updateParentForLimit(limit,user);
mdcDataDebugMessage
- .debugExitMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
- .getEpLkgId());
+ .debugExitMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
+ .getEpLkgId());
}
private boolean isLimitPresent(LimitEntity limit) {
@@ -901,108 +906,135 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
@Override
public LimitEntity getLimit(LimitEntity limitEntity,
- String user) {
+ String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id", limitEntity.getVendorLicenseModelId(),
- "EP/LKGId", limitEntity.getEpLkgId());
+ "EP/LKGId", limitEntity.getEpLkgId());
limitEntity.setVersion(VersioningUtil.resolveVersion(limitEntity.getVersion(),
- getVersionInfo(limitEntity.getVendorLicenseModelId(), VersionableEntityAction.Read,
- user), user));
+ getVersionInfo(limitEntity.getVendorLicenseModelId(), VersionableEntityAction.Read,
+ user), user));
if(!isLimitPresent(limitEntity)){
VersioningUtil
- .validateEntityExistence(null, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
+ .validateEntityExistence(null, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
}
LimitEntity retrieved = limitDao.get(limitEntity);
VersioningUtil
- .validateEntityExistence(retrieved, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
+ .validateEntityExistence(retrieved, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
mdcDataDebugMessage.debugExitMessage("VLM id", limitEntity.getVendorLicenseModelId(),
- "EP/LKGId", limitEntity.getEpLkgId());
+ "EP/LKGId", limitEntity.getEpLkgId());
return retrieved;
}
+ /**
+ * update Parent of limit (EP/LKG) versionuuid when limit is modified so that limit updates are
+ * captured in VLM XML
+ * @param limit
+ * @param user
+ */
+ private void updateParentForLimit(LimitEntity limit, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VLM id", limit.getVendorLicenseModelId(),
+ "EP/LKGId", limit.getEpLkgId(), "Limit Parent ", limit.getParent());
+ if ("EntitlementPool".equals(limit.getParent()) ) {
+ EntitlementPoolEntity entitlementPoolEntity =
+ entitlementPoolDao.get(new EntitlementPoolEntity(limit.getVendorLicenseModelId(),
+ limit.getVersion(), limit.getEpLkgId()));
+ vendorLicenseFacade.updateEntitlementPool(entitlementPoolEntity, user);
+ }
+
+ if ("LicenseKeyGroup".equals(limit.getParent())) {
+ LicenseKeyGroupEntity licenseKeyGroupEntity = licenseKeyGroupDao.get(
+ new LicenseKeyGroupEntity(limit.getVendorLicenseModelId(), limit.getVersion(),
+ limit.getEpLkgId()));
+ vendorLicenseFacade.updateLicenseKeyGroup(licenseKeyGroupEntity, user);
+ }
+
+ mdcDataDebugMessage.debugEntryMessage("VLM id", limit.getVendorLicenseModelId(),
+ "EP/LKGId", limit.getEpLkgId(), "Limit Parent ", limit.getParent());
+ }
+
protected void addFeatureGroupsToLicenseAgreementRef(Set<String> featureGroupIds,
- LicenseAgreementEntity licenseAgreement) {
+ LicenseAgreementEntity licenseAgreement) {
if (featureGroupIds != null) {
for (String featureGroupId : featureGroupIds) {
featureGroupDao.addReferencingLicenseAgreement(
- new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(),
- licenseAgreement.getVersion(), featureGroupId), licenseAgreement.getId());
+ new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(),
+ licenseAgreement.getVersion(), featureGroupId), licenseAgreement.getId());
}
}
}
protected void removeFeatureGroupsToLicenseAgreementRef(Set<String> featureGroupIds,
- LicenseAgreementEntity licenseAgreement) {
+ LicenseAgreementEntity licenseAgreement) {
if (featureGroupIds != null) {
for (String featureGroupId : featureGroupIds) {
featureGroupDao.removeReferencingLicenseAgreement(
- new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(),
- licenseAgreement.getVersion(), featureGroupId), licenseAgreement.getId());
+ new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(),
+ licenseAgreement.getVersion(), featureGroupId), licenseAgreement.getId());
}
}
}
protected void addLicenseKeyGroupsToFeatureGroupsRef(Set<String> licenseKeyGroupIds,
- FeatureGroupEntity featureGroup) {
+ FeatureGroupEntity featureGroup) {
if (licenseKeyGroupIds != null) {
for (String licenseKeyGroupId : licenseKeyGroupIds) {
licenseKeyGroupDao.addReferencingFeatureGroup(
- new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(),
- featureGroup.getVersion(), licenseKeyGroupId), featureGroup.getId());
+ new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(),
+ featureGroup.getVersion(), licenseKeyGroupId), featureGroup.getId());
}
}
}
protected void removeLicenseKeyGroupsToFeatureGroupsRef(Set<String> licenseKeyGroupIds,
- FeatureGroupEntity featureGroup) {
+ FeatureGroupEntity featureGroup) {
if (licenseKeyGroupIds != null) {
for (String licenseKeyGroupId : licenseKeyGroupIds) {
licenseKeyGroupDao.removeReferencingFeatureGroup(
- new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(),
- featureGroup.getVersion(), licenseKeyGroupId), featureGroup.getId());
+ new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(),
+ featureGroup.getVersion(), licenseKeyGroupId), featureGroup.getId());
}
}
}
protected void addEntitlementPoolsToFeatureGroupsRef(Set<String> entitlementPoolIds,
- FeatureGroupEntity featureGroup) {
+ FeatureGroupEntity featureGroup) {
if (entitlementPoolIds != null) {
for (String entitlementPoolId : entitlementPoolIds) {
entitlementPoolDao.addReferencingFeatureGroup(
- new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(),
- featureGroup.getVersion(), entitlementPoolId), featureGroup.getId());
+ new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(),
+ featureGroup.getVersion(), entitlementPoolId), featureGroup.getId());
}
}
}
protected void removeEntitlementPoolsToFeatureGroupsRef(Set<String> entitlementPoolIds,
- FeatureGroupEntity featureGroup) {
+ FeatureGroupEntity featureGroup) {
if (entitlementPoolIds != null) {
for (String entitlementPoolId : entitlementPoolIds) {
entitlementPoolDao.removeReferencingFeatureGroup(
- new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(),
- featureGroup.getVersion(), entitlementPoolId), featureGroup.getId());
+ new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(),
+ featureGroup.getVersion(), entitlementPoolId), featureGroup.getId());
}
}
}
protected VersionInfo getVersionInfo(String vendorLicenseModelId, VersionableEntityAction action,
- String user) {
+ String user) {
return vendorLicenseFacade.getVersionInfo(vendorLicenseModelId, action, user);
}
protected LicenseAgreementEntity createLicenseAgreementForList(String vlmId, Version version,
String user) {
return new LicenseAgreementEntity(vlmId, VersioningUtil
- .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user),
- null);
+ .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user),
+ null);
}
protected void updateUniqueName(String uniqueValueType ,String oldName, String newName,String ...
- context) {
+ context) {
UniqueValueUtil
- .updateUniqueValue(uniqueValueType, oldName, newName,context);
+ .updateUniqueValue(uniqueValueType, oldName, newName,context);
}
protected void deleteUniqueName(String uniqueValueType,String ... uniqueCombination) {
@@ -1011,8 +1043,8 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
protected Version resloveVersion(String vlmId,Version requestedVersion, VersionInfo versionInfo,
String user){
- return VersioningUtil.resolveVersion(null,
- getVersionInfo(vlmId, VersionableEntityAction.Write, user), user);
+ return VersioningUtil.resolveVersion(null,
+ getVersionInfo(vlmId, VersionableEntityAction.Write, user), user);
}
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/C36B4399FCB942B19D493F839CFA10E2_0_1_General_6E70545C4854465D82DBDB9BCBEF0FB5 b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/C36B4399FCB942B19D493F839CFA10E2_0_1_General_6E70545C4854465D82DBDB9BCBEF0FB5
deleted file mode 100644
index 58e6f9e5e2..0000000000
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/C36B4399FCB942B19D493F839CFA10E2_0_1_General_6E70545C4854465D82DBDB9BCBEF0FB5
+++ /dev/null
@@ -1 +0,0 @@
-bla bla \ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml
index ba95d4a3e4..b3fc9aa797 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml
@@ -16,6 +16,18 @@
<dependencies>
<dependency>
<groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-core</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
<artifactId>openecomp-tosca-datatype</artifactId>
<version>${openecomp.sdc.common.version}</version>
</dependency>
@@ -185,6 +197,21 @@
<artifactId>openecomp-sdc-tosca-generator-core</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-orchesrtation-core</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-tosca-converter-api</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-tosca-converter-core</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
</dependencies>
<build>
<plugins>
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/OrchestrationTemplateCandidateManager.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/OrchestrationTemplateCandidateManager.java
index e648ccef26..e2ef86149b 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/OrchestrationTemplateCandidateManager.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/OrchestrationTemplateCandidateManager.java
@@ -20,6 +20,7 @@
package org.openecomp.sdc.vendorsoftwareproduct;
+import org.apache.commons.lang3.tuple.Pair;
import org.openecomp.sdc.vendorsoftwareproduct.types.OrchestrationTemplateActionResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse;
@@ -32,7 +33,7 @@ import java.util.Optional;
public interface OrchestrationTemplateCandidateManager {
UploadFileResponse upload(String vspId, Version version, InputStream heatFileToUpload,
- String user);
+ String user, String filePrefix, String networkPackageName);
OrchestrationTemplateActionResponse process(String vspId, Version version, String user);
@@ -41,5 +42,5 @@ public interface OrchestrationTemplateCandidateManager {
ValidationResponse updateFilesDataStructure(String vspId, Version version, String user,
FilesDataStructure fileDataStructure);
- Optional<byte[]> get(String vspId, Version version, String user) throws IOException;
+ Optional<Pair<String, byte[]>> get(String vspId, Version version, String user) throws IOException;
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java
index 97476a2dfd..f0a9f8f31c 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java
@@ -9,24 +9,25 @@ public class DeploymentFlavorErrorBuilder {
private static final String CREATE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING_MSG=
"Deployment Flavor cannot be added for VSPs onboarded with HEAT.";
private static final String FEATURE_GROUP_NOT_EXIST_FOR_VSP_MSG=
- "Invalid request,Feature Group with Id %s does not exist for Vsp with Id %s and version " +
- "%s.";
+ "Invalid request,Feature Group with Id %s does not exist for Vsp with Id %s and version " +
+ "%s.";
private static final String INVALID_COMPONENT_COMPUTE_ASSOCIATION_MSG
- ="Invalid request,for valid association please provide ComponentId for Compute Flavor";
+ ="Invalid request,for valid association please provide ComponentId for Compute Flavor";
private static final String SAME_VFC_ASSOCIATION_MORE_THAN_ONCE_NOT_ALLOWED_MSG=
- "Invalid Request,Same Vfc cannot be associated more than once.";
+ "Invalid Request,Same Vfc cannot be associated more than once.";
private static final String DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED_MSG =
- "Invalid request, Deployment Flavor with model %s already exists for Vsp with Id %s.";
+ "Invalid request, Deployment Flavor with model %s already exists for Vsp with Id %s.";
private static final String DEPLOYMENT_FLAVOUR_NAME_FORMAT_MSG = "Field does not conform to predefined criteria"
+ ": name : must match %s";
private static final String INVALID_COMPUTE_FLAVOR_ID_MSG =
- "Invalid request, Compute Flavor with Id %s does not exist for VFC with Id %s.";
+ "Invalid request, Compute Flavor with Id %s does not exist for VFC with Id %s.";
private static final String INVALID_COMPONENT_COMPUTE_ASSOCIATION_ERROR_MSG="VSP cannot be " +
- "submitted with an invalid Deployment Flavor. All Deployment Flavor should have atleast a VFC included with it's required Compute needs. Please fix the Deployment Flavor and re-submit the VSP.";
+ "submitted with an invalid Deployment Flavor. All Deployment Flavor should have atleast a VFC included with it's required Compute needs. " +
+ "Please fix the Deployment Flavor %s and re-submit the VSP.";
private static final String FEATUREGROUP_REQUIRED_IN_DEPLOYMENT_FLAVOR_MSG = "VSP cannot be " +
- "submitted with an invalid Deployment Flavor. All Deployment Flavor should have " +
- "FeatureGroup. Please fix the Deployment Flavor and re-submit the VSP.";
+ "submitted with an invalid Deployment Flavor. All Deployment Flavor should have " +
+ "FeatureGroup. Please fix the Deployment Flavor %s and re-submit the VSP.";
public static ErrorCode getAddDeploymentNotSupportedHeatOnboardErrorBuilder(){
ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
@@ -37,12 +38,12 @@ public class DeploymentFlavorErrorBuilder {
}
public static ErrorCode getFeatureGroupNotexistErrorBuilder( String featureGroupId, String
- VspId, Version activeVersion){
+ VspId, Version activeVersion){
ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
builder.withId(VendorSoftwareProductErrorCodes.FEATURE_GROUP_NOT_EXIST_FOR_VSP);
builder.withCategory(ErrorCategory.APPLICATION);
builder.withMessage(String.format(FEATURE_GROUP_NOT_EXIST_FOR_VSP_MSG,featureGroupId,
- VspId,activeVersion.toString()));
+ VspId,activeVersion.toString()));
return builder.build();
}
@@ -70,28 +71,28 @@ public class DeploymentFlavorErrorBuilder {
return builder.build();
}
public static ErrorCode getInvalidComputeIdErrorBuilder( String computeFlavorId, String
- vfcId){
+ vfcId){
ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
builder.withId(VendorSoftwareProductErrorCodes.INVALID_COMPUTE_FLAVOR_ID);
builder.withCategory(ErrorCategory.APPLICATION);
builder.withMessage(String.format(INVALID_COMPUTE_FLAVOR_ID_MSG,computeFlavorId,
- vfcId));
+ vfcId));
return builder.build();
}
- public static ErrorCode getInvalidComponentComputeAssociationErrorBuilder(){
+ public static ErrorCode getInvalidComponentComputeAssociationErrorBuilder(String model){
ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
builder.withId(VendorSoftwareProductErrorCodes.INVALID_COMPONENT_COMPUTE_ASSOCIATION);
builder.withCategory(ErrorCategory.APPLICATION);
- builder.withMessage(String.format(INVALID_COMPONENT_COMPUTE_ASSOCIATION_ERROR_MSG));
+ builder.withMessage(String.format(INVALID_COMPONENT_COMPUTE_ASSOCIATION_ERROR_MSG, model));
return builder.build();
}
- public static ErrorCode getFeatureGroupMandatoryErrorBuilder(){
+ public static ErrorCode getFeatureGroupMandatoryErrorBuilder(String model){
ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
builder.withId(VendorSoftwareProductErrorCodes.FEATUREGROUP_REQUIRED_IN_DEPLOYMENT_FLAVOR);
builder.withCategory(ErrorCategory.APPLICATION);
- builder.withMessage(String.format(FEATUREGROUP_REQUIRED_IN_DEPLOYMENT_FLAVOR_MSG));
+ builder.withMessage(String.format(FEATUREGROUP_REQUIRED_IN_DEPLOYMENT_FLAVOR_MSG, model));
return builder.build();
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
index b54570f13c..9daec08d49 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
@@ -12,7 +12,6 @@ import org.openecomp.sdc.logging.types.LoggerConstants;
import org.openecomp.sdc.logging.types.LoggerErrorCode;
import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.vendorsoftwareproduct.ImageManager;
-import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
@@ -45,9 +44,9 @@ public class ImageManagerImpl implements ImageManager {
private CompositionEntityDataManager compositionEntityDataManager;
public ImageManagerImpl(
- VendorSoftwareProductInfoDao vspInfoDao,
- ImageDao imageDao,
- CompositionEntityDataManager compositionEntityDataManager
+ VendorSoftwareProductInfoDao vspInfoDao,
+ ImageDao imageDao,
+ CompositionEntityDataManager compositionEntityDataManager
) {
@@ -67,18 +66,17 @@ public class ImageManagerImpl implements ImageManager {
if (!isManual) {
ErrorCode errorCode = NotSupportedHeatOnboardMethodErrorBuilder
- .getAddImageNotSupportedHeatOnboardMethodErrorBuilder();
+ .getAddImageNotSupportedHeatOnboardMethodErrorBuilder();
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.CREATE_IMAGE, ErrorLevel.ERROR.name(),
- errorCode.id(), errorCode.message());
+ LoggerTragetServiceName.CREATE_IMAGE, ErrorLevel.ERROR.name(),
+ errorCode.id(), errorCode.message());
throw new CoreException(errorCode);
}
- Collection<ImageEntity> vfcImageList = listImages(imageEntity.getVspId() ,
- imageEntity.getVersion(), imageEntity.getComponentId());
- validateVfcImage(isManual, imageEntity, vfcImageList, LoggerTragetServiceName.CREATE_IMAGE);
+ /*Collection<ImageEntity> vfcImageList = listImages(imageEntity.getVspId() ,
+ imageEntity.getVersion(), imageEntity.getComponentId());*/
compositionEntityDataManager.createImage(imageEntity);
return imageEntity;
}
@@ -115,10 +113,10 @@ public class ImageManagerImpl implements ImageManager {
@Override
public CompositionEntityResponse<Image> getImage(String vspId, Version version, String
- componentId, String imageId, String user) {
+ componentId, String imageId, String user) {
mdcDataDebugMessage.debugEntryMessage("VSP id, componentId, image id", vspId, componentId,
- imageId);
+ imageId);
/*version = VersioningUtil
.resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));*/
@@ -139,14 +137,14 @@ public class ImageManagerImpl implements ImageManager {
response.setSchema(getImageCompositionSchema(schemaInput));
mdcDataDebugMessage.debugExitMessage("VSP id, componentId, image id", vspId, componentId,
- imageId);
+ imageId);
return response;
}
@Override
public QuestionnaireResponse getImageQuestionnaire(String vspId, Version version, String
- componentId, String imageId, String user) {
+ componentId, String imageId, String user) {
mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
/*version = VersioningUtil
@@ -168,9 +166,9 @@ public class ImageManagerImpl implements ImageManager {
@Override
public void deleteImage(String vspId, Version version, String componentId, String imageId, String
- user) {
+ user) {
mdcDataDebugMessage
- .debugEntryMessage("VSP id, component id", vspId, componentId, imageId);
+ .debugEntryMessage("VSP id, component id", vspId, componentId, imageId);
/*Version activeVersion =
getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
@@ -178,19 +176,19 @@ public class ImageManagerImpl implements ImageManager {
ImageEntity imageEntity = getImageEntity(vspId, version, componentId, imageId);
if (!vspInfoDao.isManual(vspId, version)) {
final ErrorCode deleteImageErrorBuilder =
- NotSupportedHeatOnboardMethodErrorBuilder
- .getDelImageNotSupportedHeatOnboardMethodErrorBuilder();
+ NotSupportedHeatOnboardMethodErrorBuilder
+ .getDelImageNotSupportedHeatOnboardMethodErrorBuilder();
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.DELETE_IMAGE, ErrorLevel.ERROR.name(),
- LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
- deleteImageErrorBuilder.message());
+ LoggerTragetServiceName.DELETE_IMAGE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
+ deleteImageErrorBuilder.message());
throw new CoreException(deleteImageErrorBuilder);
}
if (imageEntity != null) {
imageDao.delete(new ImageEntity(vspId, version, componentId, imageId));
}
mdcDataDebugMessage
- .debugExitMessage("VSP id, component id", vspId, componentId, imageId);
+ .debugExitMessage("VSP id, component id", vspId, componentId, imageId);
}
private void validateHeatVspImageUpdate(String name, String value, String retrivedValue) {
@@ -198,12 +196,12 @@ public class ImageManagerImpl implements ImageManager {
if(value != null && !value.equals(retrivedValue)) {
final ErrorCode updateHeatImageErrorBuilder =
- ImageErrorBuilder.getImageHeatReadOnlyErrorBuilder(name);
+ ImageErrorBuilder.getImageHeatReadOnlyErrorBuilder(name);
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.UPDATE_IMAGE, ErrorLevel.ERROR.name(),
- LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
- updateHeatImageErrorBuilder.message());
+ LoggerTragetServiceName.UPDATE_IMAGE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
+ updateHeatImageErrorBuilder.message());
throw new CoreException(updateHeatImageErrorBuilder);
}
}
@@ -211,33 +209,32 @@ public class ImageManagerImpl implements ImageManager {
@Override
public CompositionEntityValidationData updateImage(ImageEntity image, String user) {
mdcDataDebugMessage
- .debugEntryMessage("VSP id, component id", image.getVspId(), image.getComponentId(),
- image.getId());
+ .debugEntryMessage("VSP id, component id", image.getVspId(), image.getComponentId(),
+ image.getId());
/*Version activeVersion =
getVersionInfo(image.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
image.setVersion(activeVersion);*/
boolean isManual = vspInfoDao.isManual(image.getVspId(), image.getVersion());
ImageEntity retrieved = getImageEntity(image.getVspId(), image.getVersion(), image.getComponentId(),
- image.getId());
+ image.getId());
if(!isManual) {
final Image imageCompositionData = image.getImageCompositionData();
final String fileName = imageCompositionData.getFileName();
//final String format = imageCompositionData.getFormat();
validateHeatVspImageUpdate("fileName", fileName, retrieved.getImageCompositionData()
- .getFileName());
+ .getFileName());
/*validateHeatVspImageUpdate("format", format, retrieved.getImageCompositionData()
.getFormat());*/
}
Collection<ImageEntity> vfcImageList = listImages(image.getVspId() ,
- image.getVersion(), image.getComponentId());
+ image.getVersion(), image.getComponentId());
//Set to null so that retrieved object is equal to one in list and gets removed.
retrieved.setQuestionnaireData(null);
vfcImageList.remove(retrieved);
- validateVfcImage(isManual, image, vfcImageList, LoggerTragetServiceName.UPDATE_IMAGE);
//Set format to default value in order to handle FTL validation when image format is null
/*if(image.getImageCompositionData().getFormat() == null)
@@ -247,23 +244,23 @@ public class ImageManagerImpl implements ImageManager {
schemaInput.setImage(image.getImageCompositionData());
CompositionEntityValidationData validationData = compositionEntityDataManager
- .validateEntity(image, SchemaTemplateContext.composition, schemaInput);
+ .validateEntity(image, SchemaTemplateContext.composition, schemaInput);
if (CollectionUtils.isEmpty(validationData.getErrors())) {
imageDao.update(image);
}
mdcDataDebugMessage
- .debugExitMessage("VSP id, component id", image.getVspId(), image.getComponentId(),
- image.getId());
+ .debugExitMessage("VSP id, component id", image.getVspId(), image.getComponentId(),
+ image.getId());
return validationData;
}
@Override
public void updateImageQuestionnaire(String vspId, Version version, String componentId, String
- imageId, String questionnaireData, String user) {
+ imageId, String questionnaireData, String user) {
mdcDataDebugMessage.debugEntryMessage("VSP id, component id, imageId", vspId, componentId,
- imageId);
+ imageId);
getImageEntity(vspId, version, componentId, imageId);
@@ -281,15 +278,15 @@ public class ImageManagerImpl implements ImageManager {
} catch (IllegalArgumentException exception) {
ErrorCode errorCode = ImageErrorBuilder.getInvalidImageFormatErrorBuilder();
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.UPDATE_IMAGE, ErrorLevel.ERROR.name(),
- errorCode.id(), errorCode.message() );
+ LoggerTragetServiceName.UPDATE_IMAGE, ErrorLevel.ERROR.name(),
+ errorCode.id(), errorCode.message() );
throw new CoreException(errorCode);
}
//Validate Format is read only for HEAT Onboarding
if (!vspInfoDao.isManual(vspId, version)) {
final QuestionnaireResponse imageQuestionnaire = getImageQuestionnaire(vspId, version,
- componentId, imageId, user);
+ componentId, imageId, user);
final String data = imageQuestionnaire.getData();
if (data != null) {
String retrivedFormat = JsonUtil.json2Object(data, ImageDetails.class).getFormat();
@@ -299,19 +296,19 @@ public class ImageManagerImpl implements ImageManager {
if(!isImageVersionUnique(vspId, version, componentId, imageId, image, user))
{
- ErrorCode errorCode = ImageErrorBuilder.getDuplicateImageVersionErrorBuilder(image
- .getVersion(), componentId);
+ ErrorCode errorCode = ImageErrorBuilder.getDuplicateImageVersionErrorBuilder(image
+ .getVersion(), componentId);
- MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.UPDATE_IMAGE, ErrorLevel.ERROR.name(),
- errorCode.id(),errorCode.message());
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_IMAGE, ErrorLevel.ERROR.name(),
+ errorCode.id(),errorCode.message());
- throw new CoreException(errorCode);
+ throw new CoreException(errorCode);
}
imageDao.updateQuestionnaireData(vspId, version, componentId, imageId, questionnaireData);
mdcDataDebugMessage.debugExitMessage("VSP id, component id, imageId", vspId, componentId,
- imageId);
+ imageId);
}
private boolean isImageVersionUnique(String vspId, Version version, String componentId, String imageId,
@@ -320,15 +317,15 @@ public class ImageManagerImpl implements ImageManager {
boolean isPresent = true;
if(image!=null && image.getVersion()!=null)
{
- Collection<ImageEntity> imageEntities = imageDao.list(new ImageEntity(vspId, version, componentId, null));
- if(CollectionUtils.isNotEmpty(imageEntities))
- {
- imageEntities = imageEntities.stream().filter(imageEntity -> image.getVersion().trim().equalsIgnoreCase(
- getImageVersion(vspId, version, componentId, imageEntity, user))
- && !imageEntity.getId().equals(imageId)).collect(Collectors.toList());
-
- isPresent = CollectionUtils.isEmpty(imageEntities);
- }
+ Collection<ImageEntity> imageEntities = imageDao.list(new ImageEntity(vspId, version, componentId, null));
+ if(CollectionUtils.isNotEmpty(imageEntities))
+ {
+ imageEntities = imageEntities.stream().filter(imageEntity -> image.getVersion().trim().equalsIgnoreCase(
+ getImageVersion(vspId, version, componentId, imageEntity, user))
+ && !imageEntity.getId().equals(imageId)).collect(Collectors.toList());
+
+ isPresent = CollectionUtils.isEmpty(imageEntities);
+ }
}
return isPresent;
@@ -336,11 +333,11 @@ public class ImageManagerImpl implements ImageManager {
private String getImageVersion(String vspId, Version version, String componentId, ImageEntity imageEntity, String user)
{
- QuestionnaireResponse imageQuestionnaire = getImageQuestionnaire(vspId, version,
- componentId, imageEntity.getId(), user);
- ImageDetails imageDetails = JsonUtil.json2Object(imageQuestionnaire.getData(), ImageDetails.class);
+ QuestionnaireResponse imageQuestionnaire = getImageQuestionnaire(vspId, version,
+ componentId, imageEntity.getId(), user);
+ ImageDetails imageDetails = JsonUtil.json2Object(imageQuestionnaire.getData(), ImageDetails.class);
- return imageDetails==null?null:imageDetails.getVersion()!=null?imageDetails.getVersion().trim():null;
+ return imageDetails==null?null:imageDetails.getVersion()!=null?imageDetails.getVersion().trim():null;
}
private ImageEntity getImageEntity(String vspId, Version version, String componentId,
String imageId) {
@@ -349,7 +346,7 @@ public class ImageManagerImpl implements ImageManager {
ImageEntity imageEntity = imageDao.get(new ImageEntity(vspId, version, componentId, imageId));
VersioningUtil.validateEntityExistence(imageEntity, new ImageEntity(vspId, version, componentId,
- imageId), VspDetails.ENTITY_TYPE);
+ imageId), VspDetails.ENTITY_TYPE);
return imageEntity;
}
@@ -363,26 +360,12 @@ public class ImageManagerImpl implements ImageManager {
return false;
}
- private void validateVfcImage(boolean isManual, ImageEntity image,
- Collection<ImageEntity> vfcImageList, String event) {
- if (isImageNameDuplicate(vfcImageList,image.getImageCompositionData().getFileName())) {
- ErrorCode errorCode = ImageErrorBuilder.getDuplicateImageNameErrorBuilder(image
- .getImageCompositionData().getFileName(), image.getComponentId());
-
- MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- event, ErrorLevel.ERROR.name(),
- errorCode.id(),errorCode.message());
-
- throw new CoreException(errorCode);
- }
- }
-
protected String getImageCompositionSchema(SchemaTemplateInput schemaInput) {
mdcDataDebugMessage.debugEntryMessage(null, null);
mdcDataDebugMessage.debugExitMessage(null, null);
return SchemaGenerator
- .generate(SchemaTemplateContext.composition, CompositionEntityType.image,
- schemaInput);
+ .generate(SchemaTemplateContext.composition, CompositionEntityType.image,
+ schemaInput);
}
protected String getImageQuestionnaireSchema(SchemaTemplateInput schemaInput) {
@@ -390,7 +373,7 @@ public class ImageManagerImpl implements ImageManager {
mdcDataDebugMessage.debugExitMessage(null, null);
return SchemaGenerator
- .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.image,
- schemaInput);
+ .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.image,
+ schemaInput);
}
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerImpl.java
index 73558b465a..fcf54eef2f 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerImpl.java
@@ -25,6 +25,7 @@ import org.openecomp.core.enrichment.types.MonitoringUploadType;
import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.sdc.activityLog.ActivityLogManager;
import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity;
import org.openecomp.sdc.common.errors.CoreException;
@@ -44,6 +45,7 @@ import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.vendorsoftwareproduct.MonitoringUploadsManager;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.vendorsoftwareproduct.errors.MonitoringUploadErrorBuilder;
@@ -67,6 +69,7 @@ public class MonitoringUploadsManagerImpl implements MonitoringUploadsManager {
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
private ActivityLogManager activityLogManager;
private ComponentArtifactDao componentArtifactDao;
+ private VendorSoftwareProductDao vendorSoftwareProductDao;
private static final Logger logger =
LoggerFactory.getLogger(VendorSoftwareProductManagerImpl.class);
@@ -253,7 +256,7 @@ public class MonitoringUploadsManagerImpl implements MonitoringUploadsManager {
Map<String, List<ErrorMessage>> errors) {
FileContentHandler contentMap;
try {
- contentMap = CommonUtil.validateAndUploadFileContent(uploadedFileData);
+ contentMap = CommonUtil.validateAndUploadFileContent(OnboardingTypesEnum.ZIP, uploadedFileData);
VendorSoftwareProductUtils.validateContentZipData(contentMap, errors);
} catch (IOException exception) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java
index 07e84803aa..3f6ffcc622 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java
@@ -21,29 +21,20 @@
package org.openecomp.sdc.vendorsoftwareproduct.impl;
import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.MapUtils;
+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.types.ServiceElement;
-import org.openecomp.core.translator.datatypes.TranslatorOutput;
-import org.openecomp.core.util.UniqueValueUtil;
-import org.openecomp.core.utilities.file.FileContentHandler;
-import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.core.utilities.json.JsonUtil;
-import org.openecomp.core.validation.util.MessageContainerUtil;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.sdc.activityLog.ActivityLogManager;
-import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.common.errors.Messages;
-import org.openecomp.sdc.common.utils.CommonUtil;
import org.openecomp.sdc.common.utils.SdcCommon;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
import org.openecomp.sdc.healing.api.HealingManager;
import org.openecomp.sdc.healing.types.HealCode;
-import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
-import org.openecomp.sdc.heat.datatypes.structure.ValidationStructureList;
-import org.openecomp.sdc.heat.services.tree.HeatTreeManager;
-import org.openecomp.sdc.heat.services.tree.HeatTreeManagerUtil;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.logging.api.annotations.Metrics;
@@ -52,8 +43,6 @@ import org.openecomp.sdc.logging.messages.AuditMessages;
import org.openecomp.sdc.logging.types.LoggerServiceName;
import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
-import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
-import org.openecomp.sdc.validation.util.ValidationManagerUtil;
import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManager;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
@@ -62,40 +51,29 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadData;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.vendorsoftwareproduct.errors.OrchestrationTemplateNotFoundErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.OrchestrationTemplateFileHandler;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.OrchestrationUploadFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.process.OrchestrationProcessFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.process.OrchestrationTemplateProcessHandler;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService;
-import org.openecomp.sdc.vendorsoftwareproduct.services.utils.CandidateEntityBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.types.OrchestrationTemplateActionResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.FilesDataStructure;
-import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.sdcrests.activitylog.types.ActivityType;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.nio.ByteBuffer;
-import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import static org.openecomp.sdc.logging.messages.AuditMessages.HEAT_VALIDATION_ERROR;
-import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.GENERAL_COMPONENT_ID;
-import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME;
-
public class OrchestrationTemplateCandidateManagerImpl
implements OrchestrationTemplateCandidateManager {
private static final Logger logger =
@@ -162,65 +140,31 @@ public class OrchestrationTemplateCandidateManagerImpl
@Override
@Metrics
- public UploadFileResponse upload(String vspId, Version version, InputStream heatFileToUpload,
- String user) {
+ public UploadFileResponse upload(String vspId, Version version, InputStream fileToUpload,
+ String user, String filePrefix,
+ String networkPackageName) {
mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
-
+ OrchestrationTemplateFileHandler orchestrationTemplateFileHandler =
+ OrchestrationUploadFactory.createOrchestrationTemplateFileHandler(filePrefix);
VspDetails vspDetails = getVspDetails(vspId, version);
+ UploadFileResponse uploadResponse = orchestrationTemplateFileHandler
+ .upload(vspId, version, fileToUpload, user, candidateService,
+ vspDetails);
+ vspDetails.setOnboardingOrigin(filePrefix);
+ vspDetails.setNetworkPackageName(networkPackageName);
+ vspInfoDao.update(vspDetails);
+
+ uploadResponse.setNetworkPackageName(networkPackageName);
+ return uploadResponse;
+ }
- UploadFileResponse uploadFileResponse = new UploadFileResponse();
- if (isNotEmptyFileToUpload(heatFileToUpload, uploadFileResponse)) {
- return uploadFileResponse;
- }
-
- byte[] uploadedFileData = FileUtils.toByteArray(heatFileToUpload);
- if (isInvalidRawZipData(uploadFileResponse, uploadedFileData)) {
- return uploadFileResponse;
- }
-
- Optional<FileContentHandler> optionalContentMap =
- getZipContentMap(uploadFileResponse, uploadedFileData);
- if (!optionalContentMap.isPresent()) {
- logger.error(Messages.ZIP_CONTENT_MAP.getErrorMessage());
- uploadFileResponse
- .addStructureError(
- SdcCommon.UPLOAD_FILE,
- new ErrorMessage(ErrorLevel.ERROR, Messages.ZIP_CONTENT_MAP.getErrorMessage()));
-
- mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
- return uploadFileResponse;
- }
-
- if (!MapUtils.isEmpty(uploadFileResponse.getErrors())) {
-
- mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
- return uploadFileResponse;
- }
- try {
- OrchestrationTemplateCandidateData candidateData =
- new CandidateEntityBuilder(candidateService)
- .buildCandidateEntityFromZip(vspDetails, uploadedFileData, optionalContentMap.get(),
- uploadFileResponse.getErrors(), user);
- candidateService.updateCandidateUploadData(candidateData, vspDetails.getId());
- } catch (Exception exception) {
- logger.error(Messages.ZIP_CONTENT_MAP.getErrorMessage());
- uploadFileResponse
- .addStructureError(
- SdcCommon.UPLOAD_FILE,
- new ErrorMessage(ErrorLevel.ERROR, exception.getMessage()));
-
- mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
- return uploadFileResponse;
- }
- mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
- return uploadFileResponse;
- }
@Override
public OrchestrationTemplateActionResponse process(String vspId,
Version version, String user) {
mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
+ OrchestrationTemplateActionResponse response = new OrchestrationTemplateActionResponse();
Optional<OrchestrationTemplateCandidateData> candidate =
fetchCandidateDataEntity(vspId, version);
@@ -228,97 +172,15 @@ public class OrchestrationTemplateCandidateManagerImpl
throw new CoreException(new OrchestrationTemplateNotFoundErrorBuilder(vspId).build());
}
- logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_VALIDATION_STARTED + vspId);
- OrchestrationTemplateActionResponse response = new OrchestrationTemplateActionResponse();
- UploadFileResponse uploadFileResponse = new UploadFileResponse();
- OrchestrationTemplateCandidateData candidateDataEntity = candidate.get();
- Optional<FileContentHandler> fileContent =
- getZipContentMap(uploadFileResponse, candidateDataEntity.getContentData().array());
- if (!fileContent.isPresent()) {
- response.addStructureErrors(uploadFileResponse.getErrors());
- mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
- response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
- HEAT_VALIDATION_ERROR));
- return response;
- }
-
- Map<String, List<ErrorMessage>> uploadErrors = uploadFileResponse.getErrors();
- FileContentHandler fileContentMap = fileContent.get();
- FilesDataStructure structure =
- JsonUtil.json2Object(candidateDataEntity.getFilesDataStructure(), FilesDataStructure.class);
-
- if (CollectionUtils.isNotEmpty(structure.getUnassigned())) {
- response.addErrorMessageToMap(SdcCommon.UPLOAD_FILE,
- Messages.FOUND_UNASSIGNED_FILES.getErrorMessage(), ErrorLevel.ERROR);
-
- mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
- response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
- HEAT_VALIDATION_ERROR));
- return response;
- }
-
VspDetails vspDetails =
getVspDetails(vspId, version);
+ Optional<OrchestrationTemplateProcessHandler> processInstance =
+ OrchestrationProcessFactory.getInstance(vspDetails.getOnboardingOrigin());
- String manifest = candidateService.createManifest(vspDetails, structure);
- fileContentMap.addFile(SdcCommon.MANIFEST_NAME, manifest.getBytes());
-
- Optional<ByteArrayInputStream> zipByteArrayInputStream = candidateService
- .fetchZipFileByteArrayInputStream(vspId, candidateDataEntity, manifest, uploadErrors);
- if (!zipByteArrayInputStream.isPresent()) {
- response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
- HEAT_VALIDATION_ERROR));
- return response;
- }
-
- HeatStructureTree tree = createAndValidateHeatTree(response, fileContentMap);
-
- Map<String, String> componentsQuestionnaire = new HashMap<>();
- Map<String, Map<String, String>> componentNicsQuestionnaire = new HashMap<>();
- Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList = new HashMap<>();
- Map<String, Collection<ProcessEntity>> processes = new HashMap<>();
- Map<String, ProcessEntity> processArtifact = new HashMap<>();
-
- backupComponentsQuestionnaireBeforeDelete(vspId, version, componentsQuestionnaire,
- componentNicsQuestionnaire, componentMibList, processes, processArtifact);
-
- deleteUploadDataAndContent(vspId, version);
- saveHotData(vspId, version, zipByteArrayInputStream.get(), fileContentMap, tree);
-
- response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
- HEAT_VALIDATION_ERROR));
- if ( MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, response.getErrors
- ()))) {
- logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_VALIDATION_COMPLETED + vspId);
+ if(processInstance.isPresent()){
+ response = processInstance.get().process(vspDetails, candidate.get(), user);
}
- logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_TRANSLATION_STARTED + vspId);
-
- TranslatorOutput translatorOutput =
- HeatToToscaUtil.loadAndTranslateTemplateData(fileContentMap);
-
- ToscaServiceModel toscaServiceModel = translatorOutput.getToscaServiceModel();
- if (toscaServiceModel != null) {
- serviceModelDao.storeServiceModel(vspId, version, toscaServiceModel);
- //Extracting the compostion data from the output service model of the first phase of
- // translation
- compositionEntityDataManager.saveCompositionData(vspId, version,
- compositionDataExtractor.extractServiceCompositionData(translatorOutput
- .getNonUnifiedToscaServiceModel()));
- retainComponentQuestionnaireData(vspId, version, componentsQuestionnaire,
- componentNicsQuestionnaire, componentMibList, processes, processArtifact);
-
- logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_TRANSLATION_COMPLETED + vspId);
- }
-
- uploadFileResponse.addStructureErrors(uploadErrors);
-
- ActivityLogEntity activityLogEntity =
- new ActivityLogEntity(vspId, String.valueOf(version.getMajor() + 1),
- ActivityType.UPLOAD_HEAT.toString(), user, true, "", "");
- activityLogManager.addActionLog(activityLogEntity, user);
-
- mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
return response;
}
@@ -374,7 +236,7 @@ public class OrchestrationTemplateCandidateManagerImpl
@Override
- public Optional<byte[]> get(String vspId, Version version, String user)
+ public Optional<Pair<String, byte[]>> get(String vspId, Version version, String user)
throws IOException {
mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
@@ -393,15 +255,25 @@ public class OrchestrationTemplateCandidateManagerImpl
.debugExitMessage("VSP id", vspId);
return Optional.empty();
}
+ OnboardingTypesEnum type =
+ OnboardingTypesEnum.getOnboardingTypesEnum(vspDetails.getOnboardingOrigin());
- FilesDataStructure structure = JsonUtil
- .json2Object(candidateDataEntity.get().getFilesDataStructure(), FilesDataStructure.class);
- String manifest = candidateService.createManifest(vspDetails, structure);
+ if(vspDetails.getOnboardingOrigin().equals(OnboardingTypesEnum.ZIP.toString())) {
+ FilesDataStructure structure = JsonUtil
+ .json2Object(candidateDataEntity.get().getFilesDataStructure(), FilesDataStructure.class);
+ String manifest = candidateService.createManifest(vspDetails, structure);
- mdcDataDebugMessage
- .debugExitMessage("VSP id", vspId);
- return Optional.ofNullable(candidateService
- .replaceManifestInZip(candidateDataEntity.get().getContentData(), manifest, vspId));
+ mdcDataDebugMessage
+ .debugExitMessage("VSP id", vspId);
+ return Optional.ofNullable(
+ new ImmutablePair<>(OnboardingTypesEnum.ZIP.toString(),candidateService
+ .replaceManifestInZip(candidateDataEntity.get().getContentData(),
+ manifest, vspId, type)));
+ }
+
+ return Optional.ofNullable(
+ new ImmutablePair<>(vspDetails.getOnboardingOrigin(),candidateDataEntity.get()
+ .getContentData().array()));
}
private Optional<OrchestrationTemplateCandidateData> fetchCandidateDataEntity(
@@ -410,213 +282,6 @@ public class OrchestrationTemplateCandidateManagerImpl
.ofNullable(candidateService.getOrchestrationTemplateCandidate(vspId, version));
}
- private void retainComponentQuestionnaireData(String vspId, Version activeVersion,
- Map<String, String> componentsQustanniare,
- Map<String, Map<String, String>>
- componentNicsQustanniare,
- Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList,
- Map<String, Collection<ProcessEntity>> processes,
- Map<String, ProcessEntity> processArtifact) {
- //VSP processes
- restoreProcess(vspId, activeVersion, GENERAL_COMPONENT_ID, GENERAL_COMPONENT_ID, processes,
- processArtifact);
- Collection<ComponentEntity>
- components = vendorSoftwareProductDao.listComponents(vspId, activeVersion);
- components.forEach(componentEntity -> {
- String componentName = componentEntity.getComponentCompositionData().getName();
- if (componentsQustanniare.containsKey(componentName)) {
- componentDao.updateQuestionnaireData(vspId, activeVersion,
- componentEntity.getId(),
- componentsQustanniare.get(componentEntity.getComponentCompositionData()
- .getName()));
- if (componentNicsQustanniare.containsKey(componentName)) {
- Map<String, String> nicsQustanniare = componentNicsQustanniare.get(componentName);
- Collection<NicEntity>
- nics =
- nicDao.list(new NicEntity(vspId, activeVersion, componentEntity.getId(), null));
- nics.forEach(nicEntity -> {
- if (nicsQustanniare.containsKey(nicEntity.getNicCompositionData().getName())) {
- nicDao.updateQuestionnaireData(vspId, activeVersion,
- componentEntity.getId(), nicEntity.getId(),
- nicsQustanniare.get(nicEntity.getNicCompositionData().getName()));
- }
- });
- }
- //MIB //todo add for VES_EVENTS
- if (componentMibList.containsKey(componentName)) {
- Collection<ComponentMonitoringUploadEntity> mibList =
- componentMibList.get(componentName);
- mibList.forEach(mib -> {
- mib.setComponentId(componentEntity.getId());
- componentArtifactDao.create(mib);
- });
- }
- //VFC processes
- restoreProcess(vspId, activeVersion, componentEntity.getId(), componentName, processes,
- processArtifact);
- }
- });
- }
-
- private void backupComponentsQuestionnaireBeforeDelete(String vspId, Version activeVersion,
- Map<String, String> componentsQustanniare,
- Map<String, Map<String, String>>
- componentNicsQustanniare,
- Map<String, Collection<ComponentMonitoringUploadEntity>>
- componentMibList,
- Map<String, Collection<ProcessEntity>>
- componentProcesses,
- Map<String, ProcessEntity> processArtifact) {
- //backup VSP processes
- backupProcess(vspId, activeVersion, GENERAL_COMPONENT_ID, GENERAL_COMPONENT_ID,
- componentProcesses, processArtifact);
- Collection<ComponentEntity> componentsCompositionAndQuestionnaire = vendorSoftwareProductDao
- .listComponentsCompositionAndQuestionnaire(vspId,
- activeVersion);
- componentsCompositionAndQuestionnaire.forEach(componentEntity -> {
- String componentName = componentEntity.getComponentCompositionData().getName();
- componentsQustanniare.put(componentName, componentEntity
- .getQuestionnaireData());
- Collection<NicEntity>
- nics = nicDao.list(new NicEntity(vspId, activeVersion, componentEntity.getId(), null));
- //backup mib
- Collection<ComponentMonitoringUploadEntity> componentMib =
- componentArtifactDao.listArtifacts(new
- ComponentMonitoringUploadEntity(vspId, activeVersion, componentEntity.getId(),
- null));
- if (CollectionUtils.isNotEmpty(componentMib)) {
- componentMibList.put(componentName,componentMib);
- }
-
- //backup component processes
- backupProcess(vspId, activeVersion, componentEntity.getId(), componentName,
- componentProcesses, processArtifact);
- if (CollectionUtils.isNotEmpty(nics)) {
- Map<String, String> nicsQustanniare = new HashMap<>();
- nics.forEach(nicEntity -> {
- NicEntity nic = nicDao.get(new NicEntity(vspId, activeVersion, componentEntity.getId(),
- nicEntity.getId()));
- NicEntity nicQuestionnaire = nicDao.getQuestionnaireData(vspId, activeVersion,
- componentEntity.getId(), nicEntity.getId());
-
- nicsQustanniare
- .put(nicEntity.getNicCompositionData().getName(),
- nicQuestionnaire.getQuestionnaireData());
- });
- componentNicsQustanniare.put(componentName, nicsQustanniare);
- }
- });
- }
-
- private void backupProcess(String vspId, Version activeVersion, String componentId,
- String componentName, Map<String,
- Collection<ProcessEntity>> processes,
- Map<String, ProcessEntity> processArtifact) {
- Collection<ProcessEntity> processList = vendorSoftwareProductDao.listProcesses(vspId,
- activeVersion, componentId);
- if (!processList.isEmpty()) {
- processes.put(componentName, processList);
- processList.forEach(process -> {
- //ProcessArtifactEntity artifact = vendorSoftwareProductDao.getProcessArtifact(vspId,
- // activeVersion, componentId, process.getId());
- ProcessEntity artifact =
- processDao.get(new ProcessEntity(vspId, activeVersion, componentId, process.getId()));
- if (artifact.getArtifact() != null) {
- processArtifact.put(process.getId(), artifact);
- }
- });
- }
- }
-
- private void restoreProcess(String vspId, Version activeVersion, String componentId,
- String componentName,
- Map<String, Collection<ProcessEntity>> processes,
- Map<String, ProcessEntity> processArtifact) {
- if (processes.containsKey(componentName)) {
- Collection<ProcessEntity> processList = processes.get(componentName);
- processList.forEach(process -> {
- //Reatin VFC process
- if (!GENERAL_COMPONENT_ID.equals(componentId) && processArtifact.containsKey(process.getId
- ())) {
- ProcessEntity artifact = processArtifact.get(process.getId());
- artifact.setComponentId(componentId);
- UniqueValueUtil.createUniqueValue(PROCESS_NAME, vspId, activeVersion.toString(),
- componentId, process.getName());
- vendorSoftwareProductDao.createProcess(artifact);
- }
- });
- }
- }
-
- private HeatStructureTree createAndValidateHeatTree(OrchestrationTemplateActionResponse response,
- FileContentHandler fileContentMap) {
- VendorSoftwareProductUtils.addFileNamesToUploadFileResponse(fileContentMap, response);
- Map<String, List<ErrorMessage>> validationErrors =
- ValidationManagerUtil.initValidationManager(fileContentMap).validate();
- response.getErrors().putAll(validationErrors);
-
- HeatTreeManager heatTreeManager = HeatTreeManagerUtil.initHeatTreeManager(fileContentMap);
- heatTreeManager.createTree();
- heatTreeManager.addErrors(validationErrors);
- return heatTreeManager.getTree();
- }
-
- private void saveHotData(String vspId, Version activeVersion, InputStream uploadedFileData,
- FileContentHandler fileContentMap, HeatStructureTree tree) {
- Map<String, Object> manifestAsMap =
- (Map<String, Object>) JsonUtil.json2Object(fileContentMap.getFileContent(
- SdcCommon.MANIFEST_NAME), Map.class);
-
- UploadData uploadData = new UploadData();
- uploadData.setPackageName((String) manifestAsMap.get("name"));
- uploadData.setPackageVersion((String) manifestAsMap.get("version"));
- uploadData.setContentData(ByteBuffer.wrap(FileUtils.toByteArray(uploadedFileData)));
- uploadData.setValidationDataStructure(new ValidationStructureList(tree));
- orchestrationTemplateDataDao.updateOrchestrationTemplateData(vspId, uploadData);
- }
-
- private void deleteUploadDataAndContent(String vspId, Version version) {
- //fixme change this when more tables are zusammenized
- vendorSoftwareProductDao.deleteUploadData(vspId, version);
- }
-
- private boolean isInvalidRawZipData(UploadFileResponse uploadFileResponse,
- byte[] uploadedFileData) {
- Optional<ErrorMessage> errorMessage;
- errorMessage = candidateService.validateRawZipData(uploadedFileData);
- if (errorMessage.isPresent()) {
- uploadFileResponse.addStructureError(SdcCommon.UPLOAD_FILE, errorMessage.get());
- return true;
- }
- return false;
- }
-
- private boolean isNotEmptyFileToUpload(InputStream heatFileToUpload,
- UploadFileResponse uploadFileResponse) {
- Optional<ErrorMessage> errorMessage =
- candidateService.validateNonEmptyFileToUpload(heatFileToUpload);
- if (errorMessage.isPresent()) {
- uploadFileResponse.addStructureError(SdcCommon.UPLOAD_FILE, errorMessage.get());
- return true;
- }
- return false;
- }
-
- private Optional<FileContentHandler> getZipContentMap(UploadFileResponse uploadFileResponse,
- byte[] uploadedFileData) {
- FileContentHandler contentMap = null;
- try {
- contentMap = CommonUtil.validateAndUploadFileContent(uploadedFileData);
- } catch (IOException exception) {
- uploadFileResponse.addStructureError(
- SdcCommon.UPLOAD_FILE,
- new ErrorMessage(ErrorLevel.ERROR, Messages.INVALID_ZIP_FILE.getErrorMessage()));
- } catch (CoreException coreException) {
- uploadFileResponse.addStructureError(
- SdcCommon.UPLOAD_FILE, new ErrorMessage(ErrorLevel.ERROR, coreException.getMessage()));
- }
- return Optional.ofNullable(contentMap);
- }
// todo *************************** move to reusable place! *************************
@@ -646,4 +311,4 @@ public class OrchestrationTemplateCandidateManagerImpl
});
}
- }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
index de33ce8cfb..78c4cbf5d9 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
@@ -22,6 +22,7 @@ package org.openecomp.sdc.vendorsoftwareproduct.impl;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
+import org.openecomp.core.converter.datatypes.Constants;
import org.openecomp.core.enrichment.api.EnrichmentManager;
import org.openecomp.core.enrichment.factory.EnrichmentManagerFactory;
import org.openecomp.core.model.dao.EnrichedServiceModelDao;
@@ -31,6 +32,7 @@ import org.openecomp.core.util.UniqueValueUtil;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.json.JsonSchemaDataGenerator;
import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.core.validation.api.ValidationManager;
import org.openecomp.core.validation.util.MessageContainerUtil;
import org.openecomp.sdc.activityLog.ActivityLogManager;
@@ -94,8 +96,6 @@ import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataMana
import org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.InformationArtifactGenerator;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
-import org.openecomp.sdc.vendorsoftwareproduct.types.ComponentValidationResult;
-import org.openecomp.sdc.vendorsoftwareproduct.types.DeploymentFlavorValidationResult;
import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireValidationResult;
import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse;
@@ -130,7 +130,6 @@ import java.io.IOException;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@@ -148,7 +147,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
private static final Logger logger =
- LoggerFactory.getLogger(VendorSoftwareProductManagerImpl.class);
+ LoggerFactory.getLogger(VendorSoftwareProductManagerImpl.class);
private OrchestrationTemplateDao orchestrationTemplateDao;
private VendorSoftwareProductInfoDao vspInfoDao;
@@ -178,7 +177,6 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
* @param enrichedServiceModelDao the enriched service model dao
* @param healingManager the healing manager
* @param licenseArtifactsService the license artifacts service
- * @param compositionEntityDataManager the composition entity data manager
* @param informationArtifactGenerator the information artifact generator
* @param packageInfoDao the package info dao
* @param activityLogManager the activity log manager
@@ -186,21 +184,21 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
* @param nicDao the nic dao
*/
public VendorSoftwareProductManagerImpl(
- VersioningManager versioningManager,
- VendorSoftwareProductDao vendorSoftwareProductDao,
- OrchestrationTemplateDao orchestrationTemplateDataDao,
- VendorSoftwareProductInfoDao vspInfoDao,
- VendorLicenseFacade vendorLicenseFacade,
- ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao,
- EnrichedServiceModelDao<ToscaServiceModel, ServiceElement> enrichedServiceModelDao,
- HealingManager healingManager,
- VendorLicenseArtifactsService licenseArtifactsService,
- InformationArtifactGenerator informationArtifactGenerator,
- PackageInfoDao packageInfoDao,
- ActivityLogManager activityLogManager,
- DeploymentFlavorDao deploymentFlavorDao,
- NicDao nicDao,
- ManualVspToscaManager manualVspToscaManager) {
+ VersioningManager versioningManager,
+ VendorSoftwareProductDao vendorSoftwareProductDao,
+ OrchestrationTemplateDao orchestrationTemplateDataDao,
+ VendorSoftwareProductInfoDao vspInfoDao,
+ VendorLicenseFacade vendorLicenseFacade,
+ ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao,
+ EnrichedServiceModelDao<ToscaServiceModel, ServiceElement> enrichedServiceModelDao,
+ HealingManager healingManager,
+ VendorLicenseArtifactsService licenseArtifactsService,
+ InformationArtifactGenerator informationArtifactGenerator,
+ PackageInfoDao packageInfoDao,
+ ActivityLogManager activityLogManager,
+ DeploymentFlavorDao deploymentFlavorDao,
+ NicDao nicDao,
+ ManualVspToscaManager manualVspToscaManager) {
this.versioningManager = versioningManager;
this.vendorSoftwareProductDao = vendorSoftwareProductDao;
this.orchestrationTemplateDao = orchestrationTemplateDataDao;
@@ -222,11 +220,11 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
private void registerToVersioning() {
vendorSoftwareProductDao.registerVersioning(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
serviceModelDao.registerVersioning(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
enrichedServiceModelDao.registerVersioning(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
}
@Override
@@ -235,13 +233,13 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Checkout_Entity.toString());
Version newVersion = versioningManager
- .checkout(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
- vendorSoftwareProductId, user);
+ .checkout(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vendorSoftwareProductId, user);
if (newVersion != null) {
ActivityLogEntity activityLogEntity =
- new ActivityLogEntity(vendorSoftwareProductId, String.valueOf(newVersion.getMajor() + 1),
- ActivityType.CHECKOUT.toString(), user, true, "", "");
+ new ActivityLogEntity(vendorSoftwareProductId, String.valueOf(newVersion.getMajor() + 1),
+ ActivityType.CHECKOUT.toString(), user, true, "", "");
activityLogManager.addActionLog(activityLogEntity, user);
}
@@ -255,18 +253,18 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
mdcDataDebugMessage.debugEntryMessage("VSP id", vendorSoftwareProductId);
Version version =
- getVersionInfo(vendorSoftwareProductId, VersionableEntityAction.Read, user)
- .getActiveVersion();
+ getVersionInfo(vendorSoftwareProductId, VersionableEntityAction.Read, user)
+ .getActiveVersion();
String preVspName = vspInfoDao
- .get(new VspDetails(vendorSoftwareProductId, version)).getName();
+ .get(new VspDetails(vendorSoftwareProductId, version)).getName();
Version newVersion = versioningManager.undoCheckout(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
- vendorSoftwareProductId, user);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vendorSoftwareProductId, user);
String postVspName = vspInfoDao
- .get(new VspDetails(vendorSoftwareProductId, newVersion))
- .getName();
+ .get(new VspDetails(vendorSoftwareProductId, newVersion))
+ .getName();
updateUniqueName(preVspName, postVspName);
@@ -280,13 +278,13 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
mdcDataDebugMessage.debugEntryMessage("VSP id", vendorSoftwareProductId);
Version newVersion = versioningManager.checkin(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
- vendorSoftwareProductId, user, null);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vendorSoftwareProductId, user, null);
if (newVersion != null) {
ActivityLogEntity activityLogEntity =
- new ActivityLogEntity(vendorSoftwareProductId, String.valueOf(newVersion.getMajor() + 1),
- ActivityType.CHECKIN.toString(), user, true, "", "");
+ new ActivityLogEntity(vendorSoftwareProductId, String.valueOf(newVersion.getMajor() + 1),
+ ActivityType.CHECKIN.toString(), user, true, "", "");
activityLogManager.addActionLog(activityLogEntity, user);
}
@@ -303,53 +301,66 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
VspDetails vspDetails = getVsp(vspId, version, user);
UploadDataEntity uploadData = orchestrationTemplateDao.getOrchestrationTemplate(vspId, version);
ToscaServiceModel serviceModel =
- serviceModelDao.getServiceModel(vspId, vspDetails.getVersion());
+ serviceModelDao.getServiceModel(vspId, vspDetails.getVersion());
ValidationResponse validationResponse = new ValidationResponse();
validationResponse
- .setVspErrors(validateCompletedVendorSoftwareProduct(vspDetails, uploadData, serviceModel),
- LoggerServiceName.Submit_VSP, LoggerTragetServiceName.SUBMIT_VSP);
+ .setVspErrors(validateCompletedVendorSoftwareProduct(vspDetails, uploadData, serviceModel),
+ LoggerServiceName.Submit_VSP, LoggerTragetServiceName.SUBMIT_VSP);
if (isCyclicDependencyInComponents(vspId, vspDetails.getVersion())) {
Collection<ErrorCode> vspErrors = validationResponse.getVspErrors() == null
- ? new ArrayList<>()
- : validationResponse.getVspErrors();
+ ? new ArrayList<>()
+ : validationResponse.getVspErrors();
vspErrors.add(ComponentDependencyModelErrorBuilder
- .getcyclicDependencyComponentErrorBuilder());
+ .getcyclicDependencyComponentErrorBuilder());
validationResponse.setVspErrors(vspErrors, LoggerServiceName.Submit_VSP,
- LoggerTragetServiceName.SUBMIT_VSP);
+ LoggerTragetServiceName.SUBMIT_VSP);
}
validationResponse.setLicensingDataErrors(validateLicensingData(vspDetails));
validationResponse
- .setUploadDataErrors(validateUploadData(uploadData), LoggerServiceName.Submit_VSP,
- LoggerTragetServiceName.SUBMIT_VSP);
+ .setUploadDataErrors(validateUploadData(uploadData,vspDetails), LoggerServiceName.Submit_VSP,
+ LoggerTragetServiceName.SUBMIT_VSP);
validationResponse.setQuestionnaireValidationResult(
- validateQuestionnaire(vspDetails.getId(), vspDetails.getVersion(), vspDetails
- .getOnboardingMethod()));
+ validateQuestionnaire(vspDetails.getId(), vspDetails.getVersion(), vspDetails
+ .getOnboardingMethod()));
if (vspDetails.getOnboardingMethod().equals("Manual")) {
- validationResponse.setDeploymentFlavorValidationResult(
- deploymentFlavorValidation(vspDetails.getId(), vspDetails.getVersion()));
- validationResponse.setComponentValidationResult(
- componentValidation(vspDetails.getId(), vspDetails.getVersion()));
+ Collection<ErrorCode> deploymentFlavourValidationErrList = deploymentFlavorValidation(vspDetails.getId(), vspDetails.getVersion());
+ if (validationResponse.getVspErrors() != null) {
+ if(deploymentFlavourValidationErrList != null)
+ validationResponse.getVspErrors().addAll(deploymentFlavourValidationErrList);
+ } else {
+ validationResponse.setVspErrors(deploymentFlavourValidationErrList, LoggerServiceName.Submit_VSP,
+ LoggerTragetServiceName.SUBMIT_VSP);
+ }
+
+ Set<CompositionEntityValidationData> compositionEntityValidationData = componentValidation(vspDetails.getId(), vspDetails.getVersion());
+ if (validationResponse.getQuestionnaireValidationResult() != null) {
+ if(!CollectionUtils.isEmpty(compositionEntityValidationData))
+ validationResponse.getQuestionnaireValidationResult().getValidationData().addAll(compositionEntityValidationData);
+ } else {
+ validationResponse.setQuestionnaireValidationResult(CollectionUtils.isEmpty(compositionEntityValidationData) ? null :
+ new QuestionnaireValidationResult(compositionEntityValidationData));
+ }
+
//Generate Tosca service model for Manual Onboarding flow
VspModelInfo vspModelInfo = manualVspToscaManager.gatherVspInformation(vspId, version, user);
serviceModel = manualVspToscaManager.generateToscaModel(vspModelInfo);
}
-
validationResponse.setCompilationErrors(
- compile(vspId, vspDetails.getVersion(), serviceModel),
- LoggerServiceName.Submit_VSP, LoggerTragetServiceName.SUBMIT_VSP);
+ compile(vspId, vspDetails.getVersion(), serviceModel),
+ LoggerServiceName.Submit_VSP, LoggerTragetServiceName.SUBMIT_VSP);
if (validationResponse.isValid()) {
Version newVersion = versioningManager.submit(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
- vspId, user, null);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vspId, user, null);
ActivityLogEntity activityLogEntity = new ActivityLogEntity(vspDetails.getId(), String
- .valueOf(newVersion.getMajor()),
- ActivityType.SUBMIT.toString(), user, true, "", "");
+ .valueOf(newVersion.getMajor()),
+ ActivityType.SUBMIT.toString(), user, true, "", "");
activityLogManager.addActionLog(activityLogEntity, user);
}
@@ -360,7 +371,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
private boolean isCyclicDependencyInComponents(String vendorSoftwareProductId,
Version version) {
final Collection<ComponentDependencyModelEntity> componentDependencyModelEntities =
- vendorSoftwareProductDao.listComponentDependencies(vendorSoftwareProductId, version);
+ vendorSoftwareProductDao.listComponentDependencies(vendorSoftwareProductId, version);
ComponentDependencyTracker dependencyTracker = new ComponentDependencyTracker();
for (ComponentDependencyModelEntity entity : componentDependencyModelEntities) {
@@ -369,76 +380,60 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
return dependencyTracker.isCyclicDependencyPresent();
}
- private DeploymentFlavorValidationResult deploymentFlavorValidation(String vspId,
- Version version) {
+ private Collection<ErrorCode> deploymentFlavorValidation(String vspId,
+ Version version) {
mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
Set<CompositionEntityValidationData> validationData = new HashSet<>();
+ Collection<ErrorCode> errorCodeList = new ArrayList<>();
Collection<DeploymentFlavorEntity> deploymentFlavors =
- vendorSoftwareProductDao.listDeploymentFlavors(vspId, version);
+ vendorSoftwareProductDao.listDeploymentFlavors(vspId, version);
if (!CollectionUtils.isEmpty(deploymentFlavors)) {
deploymentFlavors.forEach(deploymentFlavor -> {
DeploymentFlavorEntity deployment = vendorSoftwareProductDao.getDeploymentFlavor(vspId,
- version, deploymentFlavor.getId());
+ version, deploymentFlavor.getId());
DeploymentFlavor deploymentlocalFlavor = deployment.getDeploymentFlavorCompositionData();
if (deploymentlocalFlavor != null) {
if (deploymentlocalFlavor.getFeatureGroupId() == null ) {
ErrorCode deploymentFlavorErrorBuilder = DeploymentFlavorErrorBuilder.
- getFeatureGroupMandatoryErrorBuilder();
- CompositionEntityValidationData compositionEntityValidationData = new
- CompositionEntityValidationData(CompositionEntityType.deployment,
- deploymentFlavor.getId());
- compositionEntityValidationData.setEntityName(deploymentlocalFlavor.getModel());
- List<String> errors = new ArrayList<>();
- errors.add(deploymentFlavorErrorBuilder.message());
- compositionEntityValidationData.setErrors(errors);
- validationData.add(compositionEntityValidationData);
+ getFeatureGroupMandatoryErrorBuilder(deploymentlocalFlavor.getModel());
+ errorCodeList.add(deploymentFlavorErrorBuilder);
}
List<ComponentComputeAssociation> componetComputeAssociations = new ArrayList<>();
componetComputeAssociations = deploymentlocalFlavor.getComponentComputeAssociations();
if (CollectionUtils.isEmpty(componetComputeAssociations)) {
CompositionEntityValidationData compositionEntityValidationData = new
- CompositionEntityValidationData(CompositionEntityType.deployment,deploymentFlavor
- .getId());
+ CompositionEntityValidationData(CompositionEntityType.deployment,deploymentFlavor
+ .getId());
compositionEntityValidationData.setEntityName(deployment
- .getDeploymentFlavorCompositionData().getModel());
+ .getDeploymentFlavorCompositionData().getModel());
ErrorCode deploymentFlavorErrorBuilder = DeploymentFlavorErrorBuilder
- .getInvalidComponentComputeAssociationErrorBuilder();
- List<String> errors = new ArrayList<>();
- errors.add(deploymentFlavorErrorBuilder.message());
- compositionEntityValidationData.setErrors(errors);
- validationData.add(compositionEntityValidationData);
+ .getInvalidComponentComputeAssociationErrorBuilder(deploymentlocalFlavor.getModel());
+
+ errorCodeList.add(deploymentFlavorErrorBuilder);
} else {
componetComputeAssociations.forEach(componetComputeAssociation -> {
if (componetComputeAssociation == null
- || !(componetComputeAssociation.getComponentId() != null
+ || !(componetComputeAssociation.getComponentId() != null
&& componetComputeAssociation.getComputeFlavorId() != null)) {
CompositionEntityValidationData compositionEntityValidationData = new
- CompositionEntityValidationData(CompositionEntityType.deployment,
- deploymentFlavor.getId());
+ CompositionEntityValidationData(CompositionEntityType.deployment,
+ deploymentFlavor.getId());
compositionEntityValidationData.setEntityName(deployment
- .getDeploymentFlavorCompositionData().getModel());
+ .getDeploymentFlavorCompositionData().getModel());
ErrorCode deploymentFlavorErrorBuilder = DeploymentFlavorErrorBuilder
- .getInvalidComponentComputeAssociationErrorBuilder();
- List<String> errors = new ArrayList<>();
- errors.add(deploymentFlavorErrorBuilder.message());
- compositionEntityValidationData.setErrors(errors);
- validationData.add(compositionEntityValidationData);
+ .getInvalidComponentComputeAssociationErrorBuilder(deploymentlocalFlavor.getModel());
+
+ errorCodeList.add(deploymentFlavorErrorBuilder);
}
});
}
}
});
}
- if (CollectionUtils.isEmpty(validationData)) {
- return null;
- }
- DeploymentFlavorValidationResult deploymentFlavorValidationResult = new
- DeploymentFlavorValidationResult(validationData);
- return deploymentFlavorValidationResult;
-
+ return errorCodeList;
}
- private ComponentValidationResult componentValidation(String vspId, Version version) {
+ private Set<CompositionEntityValidationData> componentValidation(String vspId, Version version) {
mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
Set<CompositionEntityValidationData> validationData = new HashSet<>();
@@ -450,12 +445,8 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
});
}
- if (CollectionUtils.isEmpty(validationData)) {
- return null;
- }
- ComponentValidationResult componentValidationResult =
- new ComponentValidationResult(validationData);
- return componentValidationResult;
+
+ return validationData;
}
private void validateNic(String vspId, Version version,
@@ -465,15 +456,15 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
if (CollectionUtils.isNotEmpty(nics)) {
nics.forEach(nicEntity -> {
NicEntity nic = nicDao.get(new NicEntity(vspId, version, component.getId(),
- nicEntity.getId()));
+ nicEntity.getId()));
NetworkType networkType = nic.getNicCompositionData().getNetworkType();
String networkId = nic.getNicCompositionData().getNetworkId();
if (networkType.equals(NetworkType.Internal) && networkId == null) {
CompositionEntityValidationData compositionEntityValidationData = new
- CompositionEntityValidationData(CompositionEntityType.nic, nic.getId());
+ CompositionEntityValidationData(CompositionEntityType.nic, nic.getId());
compositionEntityValidationData.setEntityName(nic.getNicCompositionData().getName());
ErrorCode nicInternalNetworkErrorBuilder = NicInternalNetworkErrorBuilder
- .getNicNullNetworkIdInternalNetworkIdErrorBuilder();
+ .getNicNullNetworkIdInternalNetworkIdErrorBuilder();
List<String> errors = new ArrayList<>();
errors.add(nicInternalNetworkErrorBuilder.message());
compositionEntityValidationData.setErrors(errors);
@@ -487,14 +478,14 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
Set<CompositionEntityValidationData> validationData,
ComponentEntity component) {
Collection<ImageEntity> images = vendorSoftwareProductDao.listImages(vspId,version,
- component.getId());
+ component.getId());
if (CollectionUtils.isEmpty(images)) {
CompositionEntityValidationData compositionEntityValidationData = new
- CompositionEntityValidationData(component.getType(),component.getId());
+ CompositionEntityValidationData(component.getType(),component.getId());
compositionEntityValidationData.setEntityName(component.getComponentCompositionData()
- .getDisplayName());
+ .getDisplayName());
ErrorCode vfcMissingImageErrorBuilder =
- ComponentErrorBuilder.VfcMissingImageErrorBuilder();
+ ComponentErrorBuilder.VfcMissingImageErrorBuilder();
List<String> errors = new ArrayList<>();
errors.add(vfcMissingImageErrorBuilder.message());
compositionEntityValidationData.setErrors(errors);
@@ -505,7 +496,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
private List<ErrorCode> validateCompletedVendorSoftwareProduct(
- VspDetails vspDetails, UploadDataEntity uploadData, Object serviceModel) {
+ VspDetails vspDetails, UploadDataEntity uploadData, Object serviceModel) {
List<ErrorCode> errors = new ArrayList<>();
@@ -527,10 +518,10 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
if (vspDetails.getOnboardingMethod().equals("Manual")) {
//Manual Onboarding specific validations
Collection<DeploymentFlavorEntity> deploymentFlavorEntities = vendorSoftwareProductDao
- .listDeploymentFlavors(vspDetails.getId(), vspDetails.getVersion());
+ .listDeploymentFlavors(vspDetails.getId(), vspDetails.getVersion());
if (CollectionUtils.isEmpty(deploymentFlavorEntities) ) {
ErrorCode vspMissingDeploymentFlavorErrorBuilder =
- VendorSoftwareProductInvalidErrorBuilder.VspMissingDeploymentFlavorErrorBuilder();
+ VendorSoftwareProductInvalidErrorBuilder.VspMissingDeploymentFlavorErrorBuilder();
errors.add(vspMissingDeploymentFlavorErrorBuilder);
}
errors.addAll(validateMandatoryLicenseFields(vspDetails));
@@ -539,10 +530,10 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
if (uploadData == null || uploadData.getContentData() == null || serviceModel == null) {
errors.add(VendorSoftwareProductInvalidErrorBuilder
.VendorSoftwareProductMissingServiceModelErrorBuilder(vspDetails.getId(),
- vspDetails.getVersion()));
+ vspDetails.getVersion()));
}
if (vspDetails.getVlmVersion() != null || vspDetails.getLicenseAgreement() != null
- || vspDetails.getFeatureGroups() != null) {
+ || vspDetails.getFeatureGroups() != null) {
errors.addAll(validateMandatoryLicenseFields(vspDetails));
}
}
@@ -553,7 +544,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
List<ErrorCode> errors = new ArrayList<>();
if (vspDetails.getVlmVersion() == null) {
errors.add(createMissingMandatoryFieldError(
- "licensing version (in the format of: {integer}.{integer})"));
+ "licensing version (in the format of: {integer}.{integer})"));
}
if (vspDetails.getLicenseAgreement() == null) {
errors.add(createMissingMandatoryFieldError("license agreement"));
@@ -572,13 +563,13 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
mdcDataDebugMessage.debugEntryMessage(null);
mdcDataDebugMessage.debugExitMessage(null);
return SchemaGenerator
- .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.vsp, schemaInput);
+ .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.vsp, schemaInput);
}
private static void sortVspListByModificationTimeDescOrder(
- List<VersionedVendorSoftwareProductInfo> vsps) {
+ List<VersionedVendorSoftwareProductInfo> vsps) {
vsps.sort((o1, o2) -> o2.getVspDetails().getWritetimeMicroSeconds()
- .compareTo(o1.getVspDetails().getWritetimeMicroSeconds()));
+ .compareTo(o1.getVspDetails().getWritetimeMicroSeconds()));
}
@@ -591,21 +582,21 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
enrichedServiceModelDao.deleteAll(vendorSoftwareProductId, version);
EnrichmentManager<ToscaServiceModel> enrichmentManager =
- EnrichmentManagerFactory.getInstance().createInterface();
+ EnrichmentManagerFactory.getInstance().createInterface();
enrichmentManager.init(vendorSoftwareProductId, version);
enrichmentManager.setModel(serviceModel);
Map<String, List<ErrorMessage>> enrichErrors = enrichmentManager.enrich();
if (MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, enrichErrors))) {
logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.ENRICHMENT_COMPLETED
- + vendorSoftwareProductId);
+ + vendorSoftwareProductId);
} else {
enrichErrors.values().forEach(errorList ->
- auditIfContainsErrors(errorList,vendorSoftwareProductId,AuditMessages.ENRICHMENT_ERROR));
+ auditIfContainsErrors(errorList,vendorSoftwareProductId,AuditMessages.ENRICHMENT_ERROR));
}
enrichedServiceModelDao
- .storeServiceModel(vendorSoftwareProductId, version, enrichmentManager.getModel());
+ .storeServiceModel(vendorSoftwareProductId, version, enrichmentManager.getModel());
return enrichErrors;
}
@@ -614,15 +605,15 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
mdcDataDebugMessage.debugEntryMessage("VSP id", vspDetails.getId());
if (vspDetails.getVendorId() == null || vspDetails.getVlmVersion() == null
- || vspDetails.getLicenseAgreement() == null
- || CollectionUtils.isEmpty(vspDetails.getFeatureGroups())) {
+ || vspDetails.getLicenseAgreement() == null
+ || CollectionUtils.isEmpty(vspDetails.getFeatureGroups())) {
return null;
}
mdcDataDebugMessage.debugExitMessage("VSP id", vspDetails.getId());
return vendorLicenseFacade
- .validateLicensingData(vspDetails.getVendorId(), vspDetails.getVlmVersion(),
- vspDetails.getLicenseAgreement(), vspDetails.getFeatureGroups());
+ .validateLicensingData(vspDetails.getVendorId(), vspDetails.getVlmVersion(),
+ vspDetails.getLicenseAgreement(), vspDetails.getFeatureGroups());
}
@Override
@@ -637,8 +628,8 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
vspInfoDao.create(validationVsp);
Version version = versioningManager.create(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
- validationVsp.getId(), user);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ validationVsp.getId(), user);
validationVsp.setVersion(version);
createUniqueName(VALIDATION_VSP_NAME);
@@ -652,17 +643,19 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
validateUniqueName(vspDetails.getName());
+ vspDetails.setOnboardingOrigin(OnboardingTypesEnum.NONE.toString());
+
vspInfoDao.create(vspDetails);//id will be set in the dao
vspInfoDao.updateQuestionnaireData(vspDetails.getId(), null,
- new JsonSchemaDataGenerator(getVspQuestionnaireSchema(null)).generateData());
+ new JsonSchemaDataGenerator(getVspQuestionnaireSchema(null)).generateData());
Version version = versioningManager
- .create(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
- vspDetails.getId(), user);
+ .create(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vspDetails.getId(), user);
vspDetails.setVersion(version);
ActivityLogEntity activityLogEntity = new ActivityLogEntity(vspDetails.getId(), String
- .valueOf(vspDetails.getVersion().getMajor() + 1),
- ActivityType.CREATE_NEW.toString(), user, true, "", "");
+ .valueOf(vspDetails.getVersion().getMajor() + 1),
+ ActivityType.CREATE_NEW.toString(), user, true, "", "");
activityLogManager.addActionLog(activityLogEntity, user);
String vspName = vspDetails.getName();
createUniqueName(vspName);
@@ -675,8 +668,8 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
mdcDataDebugMessage.debugEntryMessage(null);
Map<String, VersionInfo> idToVersionsInfo = versioningManager.listEntitiesVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, user,
- VersionableEntityAction.Read);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, user,
+ VersionableEntityAction.Read);
List<VersionedVendorSoftwareProductInfo> vsps = new ArrayList<>();
for (Map.Entry<String, VersionInfo> entry : idToVersionsInfo.entrySet()) {
@@ -702,10 +695,10 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
}
} catch (RuntimeException rte) {
logger.error(
- "Error trying to retrieve vsp[" + entry.getKey() + "] version[" + version.toString
- () + "] " +
- "message:" + rte
- .getMessage());
+ "Error trying to retrieve vsp[" + entry.getKey() + "] version[" + version.toString
+ () + "] " +
+ "message:" + rte
+ .getMessage());
}
}
@@ -723,11 +716,11 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
VspDetails retrieved = vspInfoDao.get(vspDetails);
if (!retrieved.getOnboardingMethod().equals(vspDetails.getOnboardingMethod())) {
final ErrorCode onboardingMethodUpdateErrorCode = OnboardingMethodErrorBuilder
- .getOnboardingUpdateError();
+ .getOnboardingUpdateError();
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.UPDATE_VSP, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), onboardingMethodUpdateErrorCode.message());
+ LoggerTragetServiceName.UPDATE_VSP, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), onboardingMethodUpdateErrorCode.message());
throw new CoreException(onboardingMethodUpdateErrorCode);
}
@@ -747,20 +740,20 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
private void updateDeploymentFlavor(VspDetails vspDetails, String user) {
final List<String> featureGroups = vspDetails.getFeatureGroups();
- if (featureGroups != null && !featureGroups.isEmpty() ) {
+ if (featureGroups != null) {
final Collection<DeploymentFlavorEntity> deploymentFlavorEntities = deploymentFlavorDao
- .list(new DeploymentFlavorEntity(vspDetails.getId(), vspDetails
- .getVersion(), null));
+ .list(new DeploymentFlavorEntity(vspDetails.getId(), vspDetails
+ .getVersion(), null));
if (Objects.nonNull(deploymentFlavorEntities)) {
deploymentFlavorEntities.forEach(deploymentFlavorEntity -> {
final String featureGroupId =
- deploymentFlavorEntity.getDeploymentFlavorCompositionData().getFeatureGroupId();
+ deploymentFlavorEntity.getDeploymentFlavorCompositionData().getFeatureGroupId();
if ( !featureGroups.contains(featureGroupId)) {
DeploymentFlavor deploymentFlavorCompositionData =
- deploymentFlavorEntity.getDeploymentFlavorCompositionData();
+ deploymentFlavorEntity.getDeploymentFlavorCompositionData();
deploymentFlavorCompositionData.setFeatureGroupId(null);
deploymentFlavorEntity.setDeploymentFlavorCompositionData
- (deploymentFlavorCompositionData);
+ (deploymentFlavorCompositionData);
vendorSoftwareProductDao.updateDeploymentFlavor(deploymentFlavorEntity);
}
});
@@ -776,12 +769,20 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
VspDetails vsp = vspInfoDao.get(new VspDetails(vspId, version));
if (vsp == null) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.GET_VSP, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), "Requested VSP not found");
+ LoggerTragetServiceName.GET_VSP, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Requested VSP not found");
throw new CoreException(new VendorSoftwareProductNotFoundErrorBuilder(vspId).build());
}
vsp.setValidationData(orchestrationTemplateDao.getValidationData(vspId, version));
+ if(Objects.isNull(vsp.getOnboardingOrigin())){
+ vsp.setOnboardingOrigin(OnboardingTypesEnum.ZIP.toString());
+ }
+
+ if(Objects.isNull(vsp.getNetworkPackageName())){
+ vsp.setNetworkPackageName("Upload File");
+ }
+
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
return vsp;
}
@@ -789,12 +790,12 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
@Override
public Version callAutoHeal(String vspId, VersionInfo versionInfo,
VspDetails vendorSoftwareProductInfo, String user)
- throws Exception {
+ throws Exception {
switch (versionInfo.getStatus()) {
case Locked:
if (user.equals(versionInfo.getLockingUser())) {
autoHeal(vspId, versionInfo.getActiveVersion(), vendorSoftwareProductInfo,
- versionInfo.getLockingUser());
+ versionInfo.getLockingUser());
}
return versionInfo.getActiveVersion();
case Available:
@@ -830,12 +831,12 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.DELETE_VSP, ErrorLevel.ERROR.name(),
- LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Unsupported operation");
+ LoggerTragetServiceName.DELETE_VSP, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Unsupported operation");
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
throw new UnsupportedOperationException(
- VendorSoftwareProductConstants.UNSUPPORTED_OPERATION_ERROR);
+ VendorSoftwareProductConstants.UNSUPPORTED_OPERATION_ERROR);
}
@Override
@@ -845,8 +846,8 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
VersionInfo versionInfo = getVersionInfo(vspId, VersionableEntityAction.Read, user);
version = VersionStatus.Locked.equals(versionInfo.getStatus())
- ? versionInfo.getActiveVersion()
- : checkout(vspId, user);
+ ? versionInfo.getActiveVersion()
+ : checkout(vspId, user);
version.setStatus(VersionStatus.Locked);
healingManager.healAll(getHealingParamsAsMap(vspId, version, user));
@@ -896,24 +897,24 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
if (version == null) {
errorMessage = "Package not found";
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.GET_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
+ LoggerTragetServiceName.GET_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
throw new CoreException(new PackageNotFoundErrorBuilder(vspId).build());
} else if (!version.isFinal()) {
errorMessage = "Invalid requested version";
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.GET_VERSION_INFO, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
+ LoggerTragetServiceName.GET_VERSION_INFO, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
throw new CoreException(new RequestedVersionInvalidErrorBuilder().build());
}
PackageInfo packageInfo =
- packageInfoDao.get(new PackageInfo(vspId, version));
+ packageInfoDao.get(new PackageInfo(vspId, version));
if (packageInfo == null) {
errorMessage = "Package not found";
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.GET_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
+ LoggerTragetServiceName.GET_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
throw new CoreException(new PackageNotFoundErrorBuilder(vspId, version).build());
}
@@ -921,8 +922,8 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
if (translatedFileBuffer == null) {
errorMessage = "Package not found";
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.GET_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
+ LoggerTragetServiceName.GET_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
throw new CoreException(new PackageInvalidErrorBuilder(vspId, version).build());
}
@@ -935,10 +936,10 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
} catch (IOException exception) {
errorMessage = "Can't create package";
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.CREATE_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
+ LoggerTragetServiceName.CREATE_TRANSLATED_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), errorMessage);
throw new CoreException(new TranslationFileCreationErrorBuilder(vspId, version).build(),
- exception);
+ exception);
}
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
@@ -961,12 +962,12 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
try (final ZipOutputStream zos = new ZipOutputStream(baos);
ZipInputStream zipStream = new ZipInputStream(
- new ByteArrayInputStream(contentData.array()))) {
+ new ByteArrayInputStream(contentData.array()))) {
zos.write(contentData.array());
} catch (IOException exception) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.GET_UPLOADED_HEAT, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), "Can't get uploaded HEAT");
+ LoggerTragetServiceName.GET_UPLOADED_HEAT, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Can't get uploaded HEAT");
throw new CoreException(new FileCreationErrorBuilder(vspId).build(), exception);
}
@@ -980,11 +981,11 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
if (!version.isFinal()) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.CREATE_PACKAGE, ErrorLevel.ERROR.name(),
- LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't create package");
+ LoggerTragetServiceName.CREATE_PACKAGE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't create package");
throw new CoreException(
- new CreatePackageForNonFinalVendorSoftwareProductErrorBuilder(vspId, version)
- .build());
+ new CreatePackageForNonFinalVendorSoftwareProductErrorBuilder(vspId, version)
+ .build());
}
ToscaServiceModel toscaServiceModel = enrichedServiceModelDao.getServiceModel(vspId, version);
@@ -994,13 +995,13 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
PackageInfo packageInfo = createPackageInfo(vspId, vspDetails);
ToscaFileOutputServiceCsarImpl toscaServiceTemplateServiceCsar =
- new ToscaFileOutputServiceCsarImpl();
+ new ToscaFileOutputServiceCsarImpl();
FileContentHandler licenseArtifacts = licenseArtifactsService
- .createLicenseArtifacts(vspDetails.getId(), vspDetails.getVendorId(), vlmVersion,
- vspDetails.getFeatureGroups(), user);
+ .createLicenseArtifacts(vspDetails.getId(), vspDetails.getVendorId(), vlmVersion,
+ vspDetails.getFeatureGroups(), user);
//todo add tosca validation here
packageInfo.setTranslatedFile(ByteBuffer.wrap(
- toscaServiceTemplateServiceCsar.createOutputFile(toscaServiceModel, licenseArtifacts)));
+ toscaServiceTemplateServiceCsar.createOutputFile(toscaServiceModel, licenseArtifacts)));
packageInfoDao.create(packageInfo);
@@ -1031,7 +1032,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
VspQuestionnaireEntity retrieved = vspInfoDao.getQuestionnaire(vspId, version);
VersioningUtil.validateEntityExistence(retrieved, new VspQuestionnaireEntity(vspId, version),
- VspDetails.ENTITY_TYPE);
+ VspDetails.ENTITY_TYPE);
String questionnaireData = retrieved.getQuestionnaireData();
@@ -1055,8 +1056,9 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
}
- private Map<String, List<ErrorMessage>> validateUploadData(UploadDataEntity uploadData)
- throws IOException {
+ private Map<String, List<ErrorMessage>> validateUploadData(UploadDataEntity uploadData,
+ VspDetails vspDetails)
+ throws IOException {
Map<String, List<ErrorMessage>> validationErrors = new HashMap<>();
if (uploadData == null || uploadData.getContentData() == null) {
@@ -1064,22 +1066,24 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
}
FileContentHandler fileContentMap =
- CommonUtil.validateAndUploadFileContent(uploadData.getContentData().array());
+ CommonUtil.validateAndUploadFileContent(OnboardingTypesEnum.getOnboardingTypesEnum
+ (vspDetails.getOnboardingOrigin()),
+ uploadData.getContentData().array());
//todo - check
ValidationManager validationManager =
- ValidationManagerUtil.initValidationManager(fileContentMap);
+ ValidationManagerUtil.initValidationManager(fileContentMap);
validationErrors.putAll(validationManager.validate());
return
- MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, validationErrors))
- ? null : validationErrors;
+ MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, validationErrors))
+ ? null : validationErrors;
}
private VersionInfo getVersionInfo(String vendorSoftwareProductId, VersionableEntityAction action,
String user) {
return versioningManager.getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
- vendorSoftwareProductId, user, action);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ vendorSoftwareProductId, user, action);
}
@@ -1090,9 +1094,9 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
// The apis of CompositionEntityDataManager used here are stateful!
// so, it must be re-created from scratch when it is used!
CompositionEntityDataManager compositionEntityDataManager =
- CompositionEntityDataManagerFactory.getInstance().createInterface();
+ CompositionEntityDataManagerFactory.getInstance().createInterface();
compositionEntityDataManager
- .addEntity(vspInfoDao.getQuestionnaire(vspId, version), null);
+ .addEntity(vspInfoDao.getQuestionnaire(vspId, version), null);
Collection<NicEntity> nics = vendorSoftwareProductDao.listNicsByVsp(vspId, version);
@@ -1103,16 +1107,16 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
Nic nic = nicEntity.getNicCompositionData();
if (nic != null && nic.getName() != null) {
List<String> nicNames =
- nicNamesByComponent.computeIfAbsent(nicEntity.getComponentId(), k -> new ArrayList<>());
+ nicNamesByComponent.computeIfAbsent(nicEntity.getComponentId(), k -> new ArrayList<>());
nicNames.add(nic.getName());
}
}
Collection<ComponentEntity> components =
- vendorSoftwareProductDao.listComponentsCompositionAndQuestionnaire(vspId, version);
+ vendorSoftwareProductDao.listComponentsCompositionAndQuestionnaire(vspId, version);
components.forEach(component -> compositionEntityDataManager.addEntity(component,
- new ComponentQuestionnaireSchemaInput(nicNamesByComponent.get(component.getId()),
- JsonUtil.json2Object(component.getQuestionnaireData(), Map.class))));
+ new ComponentQuestionnaireSchemaInput(nicNamesByComponent.get(component.getId()),
+ JsonUtil.json2Object(component.getQuestionnaireData(), Map.class))));
Collection<ComputeEntity> computes = vendorSoftwareProductDao.listComputesByVsp(vspId, version);
computes.forEach(compute -> compositionEntityDataManager.addEntity(compute, null));
@@ -1123,7 +1127,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
}
Map<CompositionEntityId, Collection<String>> errorsByEntityId =
- compositionEntityDataManager.validateEntitiesQuestionnaire();
+ compositionEntityDataManager.validateEntitiesQuestionnaire();
if (MapUtils.isNotEmpty(errorsByEntityId)) {
compositionEntityDataManager.buildTrees();
compositionEntityDataManager.addErrorsToTrees(errorsByEntityId);
@@ -1133,7 +1137,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
return new QuestionnaireValidationResult(
- compositionEntityDataManager.getAllErrorsByVsp(vspId));
+ compositionEntityDataManager.getAllErrorsByVsp(vspId));
}
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
@@ -1154,11 +1158,11 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
File infoArtifactFile;
try {
infoArtifactAsByteBuffer = ByteBuffer.wrap(informationArtifactGenerator.generate(vspId,
- version).getBytes());
+ version).getBytes());
infoArtifactFile =
- new File(
- String.format(VendorSoftwareProductConstants.INFORMATION_ARTIFACT_NAME, vspName));
+ new File(
+ String.format(VendorSoftwareProductConstants.INFORMATION_ARTIFACT_NAME, vspName));
OutputStream out = new BufferedOutputStream(new FileOutputStream(infoArtifactFile));
out.write(infoArtifactAsByteBuffer.array());
out.close();
@@ -1172,18 +1176,18 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
void validateUniqueName(String vspName) {
UniqueValueUtil.validateUniqueValue(
- VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, vspName);
+ VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, vspName);
}
void createUniqueName(String vspName) {
UniqueValueUtil.createUniqueValue(
- VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, vspName);
+ VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME, vspName);
}
void updateUniqueName(String oldVspName, String newVspName) {
UniqueValueUtil.updateUniqueValue(
- VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
- oldVspName, newVspName);
+ VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
+ oldVspName, newVspName);
}
@Override
@@ -1197,7 +1201,7 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
errorList.forEach(errorMessage -> {
if (errorMessage.getLevel().equals(ErrorLevel.ERROR)) {
logger.audit(AuditMessages.AUDIT_MSG + String.format(auditType, errorMessage.getMessage(),
- vspId));
+ vspId));
}
});
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/BaseOrchestrationTemplateHandler.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/BaseOrchestrationTemplateHandler.java
new file mode 100644
index 0000000000..c7fb43770d
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/BaseOrchestrationTemplateHandler.java
@@ -0,0 +1,100 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration;
+
+import org.apache.commons.collections4.MapUtils;
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+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.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService;
+import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.io.InputStream;
+import java.util.Optional;
+import static org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder.getErrorWithParameters;
+public abstract class BaseOrchestrationTemplateHandler implements OrchestrationTemplateFileHandler {
+ protected static final Logger logger =
+ LoggerFactory.getLogger(BaseOrchestrationTemplateHandler.class);
+ protected static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+
+ @Override
+ public UploadFileResponse upload(String vspId, Version version, InputStream fileToUpload, String user,
+ CandidateService candidateService, VspDetails vspDetails) {
+ UploadFileResponse uploadFileResponse = new UploadFileResponse();
+ uploadFileResponse.setOnboardingType(getHandlerType());
+ if (isNotEmptyFileToUpload(fileToUpload, uploadFileResponse, candidateService)) {
+ return uploadFileResponse;
+ }
+
+ byte[] uploadedFileData = FileUtils.toByteArray(fileToUpload);
+ if (isInvalidRawZipData(uploadFileResponse, uploadedFileData, candidateService)) {
+ return uploadFileResponse;
+ }
+
+ Optional<FileContentHandler> optionalContentMap =
+ getFileContentMap(uploadFileResponse, uploadedFileData);
+ if (!optionalContentMap.isPresent()) {
+ logger.error(getErrorWithParameters(Messages.FILE_CONTENT_MAP.getErrorMessage(), getHandlerType().toString()));
+ uploadFileResponse
+ .addStructureError(
+ SdcCommon.UPLOAD_FILE,
+ new ErrorMessage(ErrorLevel.ERROR,
+ getErrorWithParameters(Messages.FILE_CONTENT_MAP.getErrorMessage(), getHandlerType().toString())));
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ return uploadFileResponse;
+ }
+
+ if (!MapUtils.isEmpty(uploadFileResponse.getErrors())) {
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ return uploadFileResponse;
+ }
+ if (updateCandidateData(vspId, user, candidateService, vspDetails, uploadFileResponse,
+ uploadedFileData, optionalContentMap))
+ return uploadFileResponse;
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ return uploadFileResponse;
+
+ }
+
+ protected abstract boolean updateCandidateData(String vspId, String user, CandidateService candidateService,
+ VspDetails vspDetails, UploadFileResponse uploadFileResponse,
+ byte[] uploadedFileData,
+ Optional<FileContentHandler> optionalContentMap);
+
+
+ private boolean isNotEmptyFileToUpload(InputStream fileToUpload,
+ UploadFileResponse uploadFileResponse, CandidateService candidateService) {
+ Optional<ErrorMessage> errorMessage =
+ candidateService.validateNonEmptyFileToUpload(fileToUpload);
+ if (errorMessage.isPresent()) {
+ uploadFileResponse.addStructureError(SdcCommon.UPLOAD_FILE, errorMessage.get());
+ return true;
+ }
+ return false;
+ }
+
+ protected boolean isInvalidRawZipData(UploadFileResponse uploadFileResponse,
+ byte[] uploadedFileData, CandidateService candidateService) {
+ Optional<ErrorMessage> errorMessage;
+ errorMessage = candidateService.validateRawZipData(uploadedFileData);
+ if (errorMessage.isPresent()) {
+ uploadFileResponse.addStructureError(SdcCommon.UPLOAD_FILE, errorMessage.get());
+ return true;
+ }
+ return false;
+ }
+
+ public abstract Optional<FileContentHandler> getFileContentMap(UploadFileResponse uploadFileResponse,
+ byte[] uploadedFileData);
+ protected abstract OnboardingTypesEnum getHandlerType();
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateCSARHandler.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateCSARHandler.java
new file mode 100644
index 0000000000..53d34749e7
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateCSARHandler.java
@@ -0,0 +1,154 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration;
+
+import org.apache.commons.lang3.tuple.Pair;
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.common.utils.CommonUtil;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar.OnboardingManifest;
+import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService;
+import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder.getErrorWithParameters;
+import static org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar.CSARConstants.*;
+public class OrchestrationTemplateCSARHandler extends BaseOrchestrationTemplateHandler
+ implements OrchestrationTemplateFileHandler {
+
+
+ @Override
+ public Optional<FileContentHandler> getFileContentMap(UploadFileResponse uploadFileResponse,
+ byte[] uploadedFileData) {
+ FileContentHandler contentMap = null;
+ List<String> folderList = new ArrayList<>();
+ try {
+ Pair<FileContentHandler, List<String>> fileContentMapFromOrchestrationCandidateZip = CommonUtil.getFileContentMapFromOrchestrationCandidateZip(uploadedFileData);
+ contentMap = fileContentMapFromOrchestrationCandidateZip.getKey();
+ folderList = fileContentMapFromOrchestrationCandidateZip.getRight();
+ } catch (IOException exception) {
+ uploadFileResponse.addStructureError(
+ SdcCommon.UPLOAD_FILE,
+ new ErrorMessage(ErrorLevel.ERROR, Messages.INVALID_CSAR_FILE.getErrorMessage()));
+ } catch (CoreException coreException) {
+ uploadFileResponse.addStructureError(
+ SdcCommon.UPLOAD_FILE, new ErrorMessage(ErrorLevel.ERROR, coreException.getMessage()));
+ }
+ validateContent(uploadFileResponse, contentMap, folderList);
+ return Optional.ofNullable(contentMap);
+ }
+
+ private void validateContent(UploadFileResponse uploadFileResponse, FileContentHandler contentMap, List<String> folderList) {
+ validateManifest(uploadFileResponse, contentMap);
+ validateFileExist(uploadFileResponse, contentMap, MAIN_SERVICE_TEMPLATE_YAML_FILE_NAME);
+ validateNoExtraFiles(uploadFileResponse, contentMap);
+ validateFolders(uploadFileResponse, folderList);
+ }
+
+ private void validateManifest(UploadFileResponse uploadFileResponse, FileContentHandler contentMap) {
+ if (!validateFileExist(uploadFileResponse, contentMap, MAIN_SERVICE_TEMPLATE_MF_FILE_NAME)){
+ return;
+ }
+ InputStream fileContent = contentMap.getFileContent(MAIN_SERVICE_TEMPLATE_MF_FILE_NAME);
+ OnboardingManifest onboardingManifest = new OnboardingManifest(fileContent);
+ if (!onboardingManifest.isValid()){
+ onboardingManifest.getErrors().forEach(error -> uploadFileResponse.addStructureError(
+ SdcCommon.UPLOAD_FILE, new ErrorMessage(ErrorLevel.ERROR, error)));
+ }
+ }
+
+ private void validateNoExtraFiles(UploadFileResponse uploadFileResponse, FileContentHandler contentMap) {
+ List<String> unwantedFiles = contentMap.getFileList().stream()
+ .filter(this::filterFiles).collect(Collectors.toList());
+ if (!unwantedFiles.isEmpty()) {
+ unwantedFiles.stream().filter(this::filterFiles).forEach(unwantedFile ->
+ uploadFileResponse.addStructureError(
+ SdcCommon.UPLOAD_FILE, new ErrorMessage(ErrorLevel.ERROR,
+ getErrorWithParameters(Messages.CSAR_FILES_NOT_ALLOWED.getErrorMessage(),
+ unwantedFile))));
+
+ ;
+ }
+ }
+
+ private void validateFolders(UploadFileResponse uploadFileResponse, List<String> folderList) {
+ List<String> filterResult = folderList.stream().filter(this::filterFolders).collect(Collectors.toList());
+ if (!filterResult.isEmpty()) {
+ folderList.stream().filter(this::filterFolders).forEach( unwantedFolder ->
+ uploadFileResponse.addStructureError(
+ SdcCommon.UPLOAD_FILE, new ErrorMessage(ErrorLevel.ERROR,
+ getErrorWithParameters(Messages.CSAR_DIRECTORIES_NOT_ALLOWED.getErrorMessage(),
+ unwantedFolder))));
+
+ }
+ }
+ private boolean filterFiles(String inFileName) {
+ boolean valid = ELIGIBLE_FILES.stream().anyMatch(fileName -> fileName.equals(inFileName));
+ if (valid){
+ return !valid;
+ }
+ return filterFolders(inFileName);
+ }
+
+ private boolean filterFolders(String fileName) {
+ return !ELIGBLE_FOLDERS.stream().anyMatch(dirName -> fileName.startsWith(dirName));
+ }
+
+ private boolean validateFileExist(UploadFileResponse uploadFileResponse, FileContentHandler contentMap, String fileName) {
+
+ boolean containsFile = contentMap.containsFile(fileName);
+ if (!containsFile) {
+ uploadFileResponse.addStructureError(
+ SdcCommon.UPLOAD_FILE, new ErrorMessage(ErrorLevel.ERROR,
+ getErrorWithParameters(Messages.CSAR_FILE_NOT_FOUND.getErrorMessage(), fileName)));
+ }
+ return containsFile;
+ }
+
+ @Override
+ protected boolean updateCandidateData(String vspId, String user, CandidateService candidateService,
+ VspDetails vspDetails, UploadFileResponse uploadFileResponse,
+ byte[] uploadedFileData, Optional<FileContentHandler> optionalContentMap) {
+ try {
+ candidateService.updateCandidateUploadData(new OrchestrationTemplateCandidateData(
+ ByteBuffer.wrap(uploadedFileData), ""), vspDetails.getId());
+ } catch (Exception exception) {
+ logger.error(getErrorWithParameters(Messages.FILE_CONTENT_MAP.getErrorMessage(),
+ getHandlerType().toString()), exception);
+ uploadFileResponse
+ .addStructureError(
+ SdcCommon.UPLOAD_FILE,
+ new ErrorMessage(ErrorLevel.ERROR, exception.getMessage()));
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ return true;
+ }
+ return false;
+ }
+
+
+ @Override
+ protected OnboardingTypesEnum getHandlerType() {
+ return OnboardingTypesEnum.CSAR;
+ }
+
+ @Override
+ protected boolean isInvalidRawZipData(UploadFileResponse uploadFileResponse,
+ byte[] uploadedFileData, CandidateService candidateService) {
+ return super.isInvalidRawZipData(uploadFileResponse, uploadedFileData, candidateService);
+
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateFileHandler.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateFileHandler.java
new file mode 100644
index 0000000000..3f7d18de9f
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateFileHandler.java
@@ -0,0 +1,12 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration;
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService;
+import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.io.InputStream;
+public interface OrchestrationTemplateFileHandler {
+ UploadFileResponse upload(String vspId, Version version, InputStream fileToUpload, String user,
+ CandidateService candidateService, VspDetails vspDetails);
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateZipHandler.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateZipHandler.java
new file mode 100644
index 0000000000..626d941911
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationTemplateZipHandler.java
@@ -0,0 +1,55 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration;
+
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService;
+import org.openecomp.sdc.vendorsoftwareproduct.services.utils.CandidateEntityBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
+
+import java.util.Optional;
+
+import static org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder.getErrorWithParameters;
+public class OrchestrationTemplateZipHandler extends BaseOrchestrationTemplateHandler
+ implements OrchestrationTemplateFileHandler {
+
+ @Override
+ public Optional<FileContentHandler> getFileContentMap(UploadFileResponse uploadFileResponse,
+ byte[] uploadedFileData) {
+ return OrchestrationUtil.getFileContentMap(OnboardingTypesEnum.ZIP, uploadFileResponse, uploadedFileData);
+ }
+
+ @Override
+ protected boolean updateCandidateData(String vspId, String user, CandidateService candidateService,
+ VspDetails vspDetails, UploadFileResponse uploadFileResponse,
+ byte[] uploadedFileData, Optional<FileContentHandler> optionalContentMap) {
+ try {
+ OrchestrationTemplateCandidateData candidateData =
+ new CandidateEntityBuilder(candidateService)
+ .buildCandidateEntityFromZip(vspDetails, uploadedFileData, optionalContentMap.get(),
+ uploadFileResponse.getErrors(), user);
+ candidateService.updateCandidateUploadData(candidateData, vspDetails.getId());
+ } catch (Exception exception) {
+ logger.error(getErrorWithParameters(Messages.FILE_CONTENT_MAP.getErrorMessage(),
+ getHandlerType().toString()),exception);
+ uploadFileResponse
+ .addStructureError(
+ SdcCommon.UPLOAD_FILE,
+ new ErrorMessage(ErrorLevel.ERROR, exception.getMessage()));
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ protected OnboardingTypesEnum getHandlerType() {
+ return OnboardingTypesEnum.ZIP;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUploadFactory.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUploadFactory.java
new file mode 100644
index 0000000000..85f92662ea
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUploadFactory.java
@@ -0,0 +1,29 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.OrchestrationUtil.ORCHESTRATION_CONFIG_NAMESPACE;
+import static org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.OrchestrationUtil.ORCHESTRATION_IMPL_KEY;
+
+public class OrchestrationUploadFactory {
+ private static Map<String, ImplementationConfiguration> fileHanlders;
+
+ static {
+ Configuration config = ConfigurationManager.lookup();
+ fileHanlders = new ConcurrentHashMap<>(config.populateMap(ORCHESTRATION_CONFIG_NAMESPACE,
+ ORCHESTRATION_IMPL_KEY, ImplementationConfiguration.class));
+
+ }
+
+ public static final OrchestrationTemplateFileHandler createOrchestrationTemplateFileHandler(String filePrefix) {
+ ImplementationConfiguration orchestrationTemplateFileHandler = fileHanlders.get(filePrefix);
+ return CommonMethods.newInstance(orchestrationTemplateFileHandler.getImplementationClass(),
+ OrchestrationTemplateFileHandler.class);
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUtil.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUtil.java
new file mode 100644
index 0000000000..9d7421f336
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUtil.java
@@ -0,0 +1,282 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.openecomp.core.model.dao.ServiceModelDao;
+import org.openecomp.core.model.dao.ServiceModelDaoFactory;
+import org.openecomp.core.util.UniqueValueUtil;
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.common.utils.CommonUtil;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
+import org.openecomp.sdc.heat.datatypes.structure.ValidationStructureList;
+import org.openecomp.sdc.heat.services.tree.HeatTreeManager;
+import org.openecomp.sdc.heat.services.tree.HeatTreeManagerUtil;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.MonitoringUploadDaoFactory;
+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.ProcessDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadData;
+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.UploadFileResponse;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.GENERAL_COMPONENT_ID;
+import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME;
+
+public class OrchestrationUtil {
+
+ public static final String ORCHESTRATION_CONFIG_NAMESPACE = "orchestration";
+ public static final String ORCHESTRATION_IMPL_KEY = "orchestration_impl";
+
+
+ private static VendorSoftwareProductDao vendorSoftwareProductDao =
+ VendorSoftwareProductDaoFactory.getInstance().createInterface();
+ private static NicDao nicDao = NicDaoFactory.getInstance().createInterface();
+ private static ComponentArtifactDao componentArtifactDao = MonitoringUploadDaoFactory.getInstance().createInterface();
+ private static ProcessDao processDao = ProcessDaoFactory.getInstance().createInterface();
+ private static OrchestrationTemplateDao orchestrationTemplateDataDao =
+ OrchestrationTemplateDaoFactory.getInstance().createInterface();
+ private static ComponentDao componentDao =
+ ComponentDaoFactory.getInstance().createInterface();
+ private static ServiceModelDao serviceModelDao = ServiceModelDaoFactory.getInstance()
+ .createInterface();
+ private static CompositionEntityDataManager compositionEntityDataManager =
+ CompositionEntityDataManagerFactory.getInstance().createInterface();
+ private static CompositionDataExtractor compositionDataExtractor =
+ CompositionDataExtractorFactory.getInstance().createInterface();
+
+ public static Optional<FileContentHandler> getFileContentMap(OnboardingTypesEnum type,
+ UploadFileResponse uploadFileResponse,
+ byte[] uploadedFileData) {
+ FileContentHandler contentMap = null;
+ try {
+ contentMap = CommonUtil.validateAndUploadFileContent(type, uploadedFileData);
+ } catch (IOException exception) {
+ uploadFileResponse.addStructureError(
+ SdcCommon.UPLOAD_FILE,
+ new ErrorMessage(ErrorLevel.ERROR, Messages.INVALID_ZIP_FILE.getErrorMessage()));
+ } catch (CoreException coreException) {
+ uploadFileResponse.addStructureError(
+ SdcCommon.UPLOAD_FILE, new ErrorMessage(ErrorLevel.ERROR, coreException.getMessage()));
+ }
+ return Optional.ofNullable(contentMap);
+ }
+
+ public static void backupComponentsQuestionnaireBeforeDelete(String vspId, Version activeVersion,
+ Map<String, String> componentsQustanniare,
+ Map<String, Map<String, String>>
+ componentNicsQustanniare,
+ Map<String, Collection<ComponentMonitoringUploadEntity>>
+ componentMibList,
+ Map<String, Collection<ProcessEntity>>
+ componentProcesses,
+ Map<String, ProcessEntity> processArtifact) {
+ //backup VSP processes
+ backupProcess(vspId, activeVersion, GENERAL_COMPONENT_ID, GENERAL_COMPONENT_ID,
+ componentProcesses, processArtifact);
+ Collection<ComponentEntity> componentsCompositionAndQuestionnaire = vendorSoftwareProductDao
+ .listComponentsCompositionAndQuestionnaire(vspId,
+ activeVersion);
+ componentsCompositionAndQuestionnaire.forEach(componentEntity -> {
+ String componentName = componentEntity.getComponentCompositionData().getName();
+ componentsQustanniare.put(componentName, componentEntity
+ .getQuestionnaireData());
+ Collection<NicEntity>
+ nics = nicDao.list(new NicEntity(vspId, activeVersion, componentEntity.getId(), null));
+ //backup mib
+ Collection<ComponentMonitoringUploadEntity> componentMib =
+ componentArtifactDao.listArtifacts(new
+ ComponentMonitoringUploadEntity(vspId, activeVersion, componentEntity.getId(),
+ null));
+ if (CollectionUtils.isNotEmpty(componentMib)) {
+ componentMibList.put(componentName,componentMib);
+ }
+
+ //backup component processes
+ backupProcess(vspId, activeVersion, componentEntity.getId(), componentName,
+ componentProcesses, processArtifact);
+ if (CollectionUtils.isNotEmpty(nics)) {
+ Map<String, String> nicsQustanniare = new HashMap<>();
+ nics.forEach(nicEntity -> {
+ NicEntity nic = nicDao.get(new NicEntity(vspId, activeVersion, componentEntity.getId(),
+ nicEntity.getId()));
+ NicEntity nicQuestionnaire = nicDao.getQuestionnaireData(vspId, activeVersion,
+ componentEntity.getId(), nicEntity.getId());
+
+ nicsQustanniare
+ .put(nicEntity.getNicCompositionData().getName(),
+ nicQuestionnaire.getQuestionnaireData());
+ });
+ componentNicsQustanniare.put(componentName, nicsQustanniare);
+ }
+ });
+ }
+
+ private static void backupProcess(String vspId, Version activeVersion, String componentId,
+ String componentName, Map<String,
+ Collection<ProcessEntity>> processes,
+ Map<String, ProcessEntity> processArtifact) {
+ Collection<ProcessEntity> processList = vendorSoftwareProductDao.listProcesses(vspId,
+ activeVersion, componentId);
+ if (!processList.isEmpty()) {
+ processes.put(componentName, processList);
+ processList.forEach(process -> {
+ //ProcessArtifactEntity artifact = vendorSoftwareProductDao.getProcessArtifact(vspId,
+ // activeVersion, componentId, process.getId());
+ ProcessEntity artifact =
+ processDao.get(new ProcessEntity(vspId, activeVersion, componentId, process.getId()));
+ if (artifact.getArtifact() != null) {
+ processArtifact.put(process.getId(), artifact);
+ }
+ });
+ }
+ }
+
+ public static void retainComponentQuestionnaireData(String vspId, Version activeVersion,
+ Map<String, String> componentsQustanniare,
+ Map<String, Map<String, String>>
+ componentNicsQustanniare,
+ Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList,
+ Map<String, Collection<ProcessEntity>> processes,
+ Map<String, ProcessEntity> processArtifact) {
+ //VSP processes
+ restoreProcess(vspId, activeVersion, GENERAL_COMPONENT_ID, GENERAL_COMPONENT_ID, processes,
+ processArtifact);
+ Collection<ComponentEntity>
+ components = vendorSoftwareProductDao.listComponents(vspId, activeVersion);
+ components.forEach(componentEntity -> {
+ String componentName = componentEntity.getComponentCompositionData().getName();
+ if (componentsQustanniare.containsKey(componentName)) {
+ componentDao.updateQuestionnaireData(vspId, activeVersion,
+ componentEntity.getId(),
+ componentsQustanniare.get(componentEntity.getComponentCompositionData()
+ .getName()));
+ if (componentNicsQustanniare.containsKey(componentName)) {
+ Map<String, String> nicsQustanniare = componentNicsQustanniare.get(componentName);
+ Collection<NicEntity>
+ nics =
+ nicDao.list(new NicEntity(vspId, activeVersion, componentEntity.getId(), null));
+ nics.forEach(nicEntity -> {
+ if (nicsQustanniare.containsKey(nicEntity.getNicCompositionData().getName())) {
+ nicDao.updateQuestionnaireData(vspId, activeVersion,
+ componentEntity.getId(), nicEntity.getId(),
+ nicsQustanniare.get(nicEntity.getNicCompositionData().getName()));
+ }
+ });
+ }
+ //MIB //todo add for VES_EVENTS
+ if (componentMibList.containsKey(componentName)) {
+ Collection<ComponentMonitoringUploadEntity> mibList =
+ componentMibList.get(componentName);
+ mibList.forEach(mib -> {
+ mib.setComponentId(componentEntity.getId());
+ componentArtifactDao.create(mib);
+ });
+ }
+ //VFC processes
+ restoreProcess(vspId, activeVersion, componentEntity.getId(), componentName, processes,
+ processArtifact);
+ }
+ });
+ }
+
+ private static void restoreProcess(String vspId, Version activeVersion, String componentId,
+ String componentName,
+ Map<String, Collection<ProcessEntity>> processes,
+ Map<String, ProcessEntity> processArtifact) {
+ if (processes.containsKey(componentName)) {
+ Collection<ProcessEntity> processList = processes.get(componentName);
+ processList.forEach(process -> {
+ //Reatin VFC process
+ if (!GENERAL_COMPONENT_ID.equals(componentId) && processArtifact.containsKey(process.getId
+ ())) {
+ ProcessEntity artifact = processArtifact.get(process.getId());
+ artifact.setComponentId(componentId);
+ UniqueValueUtil.createUniqueValue(PROCESS_NAME, vspId, activeVersion.toString(),
+ componentId, process.getName());
+ vendorSoftwareProductDao.createProcess(artifact);
+ }
+ });
+ }
+ }
+
+ public static void deleteUploadDataAndContent(String vspId, Version version) {
+ //fixme change this when more tables are zusammenized
+ vendorSoftwareProductDao.deleteUploadData(vspId, version);
+ }
+
+ public static void saveUploadData(String vspId, Version activeVersion, InputStream uploadedFileData,
+ FileContentHandler fileContentMap, HeatStructureTree tree) {
+ Map<String, Object> manifestAsMap =
+ fileContentMap.containsFile(SdcCommon.MANIFEST_NAME) ?
+ (Map<String, Object>) JsonUtil.json2Object(fileContentMap.getFileContent(
+ SdcCommon.MANIFEST_NAME), Map.class)
+ : new HashMap<>();
+
+ UploadData uploadData = new UploadData();
+ uploadData.setContentData(ByteBuffer.wrap(FileUtils.toByteArray(uploadedFileData)));
+ uploadData.setValidationDataStructure(new ValidationStructureList(tree));
+ uploadData.setPackageName(Objects.isNull(manifestAsMap.get("name")) ? null :
+ (String) manifestAsMap.get("name"));
+ uploadData.setPackageVersion(Objects.isNull(manifestAsMap.get("version")) ? null :
+ (String) manifestAsMap.get("version"));
+ orchestrationTemplateDataDao.updateOrchestrationTemplateData(vspId, uploadData);
+ }
+
+ public static void saveServiceModel(String vspId,
+ Version version,
+ ToscaServiceModel serviceModelToExtract,
+ ToscaServiceModel serviceModelToStore){
+ if (serviceModelToExtract != null) {
+ serviceModelDao.storeServiceModel(vspId, version, serviceModelToStore);
+ //Extracting the compostion data from the output service model of the first phase of
+ // translation
+ compositionEntityDataManager.saveCompositionData(vspId, version,
+ compositionDataExtractor.extractServiceCompositionData(serviceModelToExtract));
+// OrchestrationUtil.retainComponentQuestionnaireData(vspId, version, componentsQuestionnaire,
+// componentNicsQuestionnaire, componentMibList, processes, processArtifact);
+ }
+ }
+
+ public static HeatStructureTree createHeatTree(FileContentHandler fileContentMap,
+ Map<String, List<ErrorMessage>> validationErrors){
+ HeatTreeManager heatTreeManager = HeatTreeManagerUtil.initHeatTreeManager(fileContentMap);
+ heatTreeManager.createTree();
+ heatTreeManager.addErrors(validationErrors);
+ return heatTreeManager.getTree();
+ }
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/CSARConstants.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/CSARConstants.java
new file mode 100644
index 0000000000..0d204ef2c0
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/CSARConstants.java
@@ -0,0 +1,18 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar;
+
+import com.google.common.collect.ImmutableSet;
+import static com.google.common.collect.ImmutableSet.of;
+public class CSARConstants {
+
+ public static final ImmutableSet<String> ELIGBLE_FOLDERS = of("Artifacts/","Definitions/",
+ "Licenses/", "TOSCA-Metadata/");
+
+ public static final String MAIN_SERVICE_TEMPLATE_MF_FILE_NAME = "MainServiceTemplate.mf";
+ public static final String MAIN_SERVICE_TEMPLATE_YAML_FILE_NAME = "MainServiceTemplate.yaml";
+ public static final ImmutableSet<String> ELIGIBLE_FILES =
+ of(MAIN_SERVICE_TEMPLATE_MF_FILE_NAME,MAIN_SERVICE_TEMPLATE_YAML_FILE_NAME);
+
+ public static final String METADATA_MF_ATTRIBUTE = "metadata";
+ public static final String SOURCE_MF_ATTRIBUTE = "source";
+ public static final String SEPERATOR_MF_ATTRIBUTE = ":";
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/OnboardingManifest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/OnboardingManifest.java
new file mode 100644
index 0000000000..d88d883e67
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/csar/OnboardingManifest.java
@@ -0,0 +1,141 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import org.apache.commons.lang.StringUtils;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+
+import static org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder.getErrorWithParameters;
+import static org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar.CSARConstants.*;
+
+public class OnboardingManifest {
+ private static final Logger logger = LoggerFactory.getLogger(OnboardingManifest.class);
+ private Map<String, String> metadata;
+ private List<String> sources;
+ private List<String> errors;
+ private State state;
+ private enum State {
+ Start, ProcessMetadata, ProcessSources, Error
+ }
+
+ public OnboardingManifest(InputStream is) {
+ errors = new ArrayList<>();
+ sources = new ArrayList<>();
+ metadata = new HashMap<>();
+ parseManifest(is);
+ }
+
+ private void parseManifest(InputStream is) {
+ try {
+ ImmutableList<String> lines = readAllLines(is);
+ state = State.Start;
+
+ for (String line : lines) {
+ line = line.trim();
+ if (!StringUtils.isEmpty(line.trim())) {
+ state = processLine(state, line);
+ }
+ }
+ if (errors.isEmpty()) {
+ if (metadata.isEmpty()) {
+ errors.add(Messages.MANIFEST_NO_METADATA.getErrorMessage());
+ }
+ if (sources.isEmpty()) {
+ errors.add(Messages.MANIFEST_NO_SOURCES.getErrorMessage());
+ }
+ }
+ } catch (IOException e){
+ logger.error(e.getMessage(),e);
+ errors.add(Messages.MANIFEST_PARSER_INTERNAL.getErrorMessage());
+ }
+ }
+
+ private State processLine(State state, String line) {
+ switch (state) {
+ case Start:
+ if (line.trim().equals(METADATA_MF_ATTRIBUTE + SEPERATOR_MF_ATTRIBUTE)) {
+ state = State.ProcessMetadata;
+ } else {
+ reportError(line);
+ }
+ break;
+ case ProcessMetadata:
+ String[] metaSplit = line.split(SEPERATOR_MF_ATTRIBUTE);
+ if (metaSplit.length < 2){
+ reportError(line);
+ break;
+ }
+ if (!metaSplit[0].equals(SOURCE_MF_ATTRIBUTE)){
+ String value = line.replace(metaSplit[0] + SEPERATOR_MF_ATTRIBUTE, "").trim();
+ metadata.put(metaSplit[0],value);
+ } else {
+ state = State.ProcessSources;
+ processSourceLine(line);
+ }
+ break;
+ case ProcessSources:
+ processSourceLine(line);
+
+ break;
+ case Error:
+ break;
+
+ } return state;
+ }
+
+ private void processSourceLine(String line) {
+ if (line.startsWith(SOURCE_MF_ATTRIBUTE+SEPERATOR_MF_ATTRIBUTE)){
+ String value = line.replaceAll(SOURCE_MF_ATTRIBUTE + SEPERATOR_MF_ATTRIBUTE, "").trim();
+ sources.add(value);
+ }else {
+ reportError(line);
+ }
+ }
+
+ private void reportError(String line) {
+ errors.add(getErrorWithParameters(Messages.MANIFEST_INVALID_LINE.getErrorMessage(), line));
+ state = State.Error;
+ }
+
+ private ImmutableList<String> readAllLines(InputStream is) throws IOException {
+ ImmutableList.Builder<String> builder = ImmutableList.<String> builder();
+ try (Reader reader = new InputStreamReader(is, StandardCharsets.UTF_8.newDecoder());
+ BufferedReader bufferedReader = new BufferedReader(reader);) {
+ for (; ; ) {
+ String line = bufferedReader.readLine();
+ if (line == null)
+ break;
+ builder.add(line);
+ }
+ }
+ return builder.build();
+ }
+
+ public Map<String, String> getMetadata() {
+ if (!isValid()){
+ return Collections.EMPTY_MAP;
+ }
+ return ImmutableMap.copyOf(metadata);
+ }
+
+ public List<String> getSources() {
+ if (!isValid()){
+ return Collections.EMPTY_LIST;
+ }
+ return ImmutableList.copyOf(sources);
+ }
+
+ public List<String> getErrors() {
+ return ImmutableList.copyOf(errors);
+ }
+
+ public boolean isValid() {
+ return errors.isEmpty();
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationProcessFactory.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationProcessFactory.java
new file mode 100644
index 0000000000..db43e0084e
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationProcessFactory.java
@@ -0,0 +1,64 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.process;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
+import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
+import org.openecomp.sdc.vendorsoftwareproduct.types.ConfigConstants;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+import java.util.concurrent.ConcurrentHashMap;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.OrchestrationUtil.ORCHESTRATION_CONFIG_NAMESPACE;
+public class OrchestrationProcessFactory {
+
+ private static final String confFile = "config-orchestration.json";
+ private static Map<String, ImplementationConfiguration> processImplMap;
+
+ static {
+ Configuration config = ConfigurationManager.lookup();
+ processImplMap = new ConcurrentHashMap<>(config.populateMap(ORCHESTRATION_CONFIG_NAMESPACE,
+ ConfigConstants.PROCESS_IMPL_KEY, ImplementationConfiguration.class));
+
+ }
+
+ public static Optional<OrchestrationTemplateProcessHandler> getInstance(String filePrefix) {
+ filePrefix = filePrefix == null ? null : filePrefix.toLowerCase().trim();
+ if (filePrefix == null) {
+ return Optional.empty();
+ }
+
+ OnboardingTypesEnum onboardingTypesEnum = OnboardingTypesEnum.getOnboardingTypesEnum(filePrefix);
+ if (onboardingTypesEnum == null) {
+ return Optional.empty();
+ }
+
+ try {
+ return Optional.of(createInstance(processImplMap.get(onboardingTypesEnum.toString())));
+ }catch (Exception e){
+ return Optional.empty();
+ }
+ }
+
+ private static Map<String, String> getOrchestrationImplMap(){
+ try {
+ return FileUtils.readViaInputStream(confFile,
+ stream -> JsonUtil.json2Object(stream, Map.class));
+ }catch (Exception e){
+ return new HashMap<>();
+ }
+ }
+
+ private static OrchestrationTemplateProcessHandler createInstance(ImplementationConfiguration implClass)
+ throws Exception {
+ OrchestrationTemplateProcessHandler handler;
+ handler =
+ CommonMethods.newInstance(implClass.getImplementationClass(), OrchestrationTemplateProcessHandler.class);
+ return handler;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessCsarHandler.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessCsarHandler.java
new file mode 100644
index 0000000000..4866d93411
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessCsarHandler.java
@@ -0,0 +1,133 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.process;
+
+import org.apache.commons.collections4.MapUtils;
+import org.openecomp.core.converter.ToscaConverter;
+import org.openecomp.core.impl.ToscaConverterImpl;
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
+import org.openecomp.core.validation.util.MessageContainerUtil;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
+import org.openecomp.sdc.heat.services.tree.ToscaTreeManager;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.openecomp.sdc.logging.messages.AuditMessages;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.factory.CandidateServiceFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.OrchestrationUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService;
+import org.openecomp.sdc.vendorsoftwareproduct.types.OrchestrationTemplateActionResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+public class OrchestrationTemplateProcessCsarHandler implements OrchestrationTemplateProcessHandler {
+
+ private static Logger logger =
+ LoggerFactory.getLogger(OrchestrationTemplateProcessCsarHandler.class);
+ private ToscaConverter toscaConverter = new ToscaConverterImpl();
+ private CandidateService candidateService =
+ CandidateServiceFactory.getInstance().createInterface();
+ ToscaTreeManager toscaTreeManager = new ToscaTreeManager();
+
+ @Override
+ public OrchestrationTemplateActionResponse process(VspDetails vspDetails,
+ OrchestrationTemplateCandidateData candidateData,
+ String user) {
+ String vspId = vspDetails.getId();
+ Version version = vspDetails.getVersion();
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CSAR_VALIDATION_STARTED + vspId);
+ OrchestrationTemplateActionResponse response = new OrchestrationTemplateActionResponse();
+ UploadFileResponse uploadFileResponse = new UploadFileResponse();
+ Optional<FileContentHandler> fileContent =
+ OrchestrationUtil
+ .getFileContentMap(
+ OnboardingTypesEnum.CSAR, uploadFileResponse, candidateData.getContentData().array());
+
+ if(fileContent.isPresent()){
+ try {
+ FileContentHandler fileContentHandler = fileContent.get();
+ processCsar(vspId, version, fileContentHandler, candidateData, response);
+ } catch (CoreException e){
+ logger.error(e.getMessage());
+ throw e;
+ } catch (Exception e){
+ logger.error(e.getMessage());
+ }
+ }
+
+ return response;
+ }
+
+ private void processCsar(String vspId, Version version,
+ FileContentHandler fileContentHandler,
+ OrchestrationTemplateCandidateData candidateData,
+ OrchestrationTemplateActionResponse response) throws IOException {
+
+
+ response.setFileNames(new ArrayList<>(fileContentHandler.getFileList()));
+ Map<String, List<ErrorMessage>> errors = validateCsar(fileContentHandler, response);
+ if(!isValid(errors)){
+ return;
+ }
+
+ HeatStructureTree tree = toscaTreeManager.getTree();
+
+ Map<String, String> componentsQuestionnaire = new HashMap<>();
+ Map<String, Map<String, String>> componentNicsQuestionnaire = new HashMap<>();
+ Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList = new HashMap<>();
+ Map<String, Collection<ProcessEntity>> processes = new HashMap<>();
+ Map<String, ProcessEntity> processArtifact = new HashMap<>();
+
+ OrchestrationUtil.backupComponentsQuestionnaireBeforeDelete(vspId,
+ version, componentsQuestionnaire,
+ componentNicsQuestionnaire, componentMibList, processes, processArtifact);
+
+ Optional<ByteArrayInputStream> zipByteArrayInputStream = candidateService
+ .fetchZipFileByteArrayInputStream(vspId, candidateData, null, OnboardingTypesEnum.CSAR, errors);
+
+ OrchestrationUtil.deleteUploadDataAndContent(vspId, version);
+ OrchestrationUtil.saveUploadData(
+ vspId, version, zipByteArrayInputStream.get(), fileContentHandler, tree);
+
+ ToscaServiceModel toscaServiceModel = toscaConverter.convert(fileContentHandler);
+ OrchestrationUtil.saveServiceModel(vspId, version, toscaServiceModel, toscaServiceModel);
+
+ }
+
+ private void addFiles(FileContentHandler fileContentHandler){
+ for(Map.Entry<String, byte[]> fileEntry : fileContentHandler.getFiles().entrySet()){
+ toscaTreeManager.addFile(fileEntry.getKey(), fileEntry.getValue());
+ }
+ }
+
+ private Map<String, List<ErrorMessage>> validateCsar(FileContentHandler fileContentHandler,
+ OrchestrationTemplateActionResponse response){
+
+
+ Map<String, List<ErrorMessage>> errors = new HashMap<>();
+ addFiles(fileContentHandler);
+ toscaTreeManager.createTree();
+ toscaTreeManager.addErrors(errors);
+ //todo - add tosca validation here to the existing validation framework
+ return errors;
+ }
+
+ private boolean isValid(Map<String, List<ErrorMessage>> errors){
+ return MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, errors));
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessHandler.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessHandler.java
new file mode 100644
index 0000000000..8b513b4347
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessHandler.java
@@ -0,0 +1,12 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.process;
+
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.types.OrchestrationTemplateActionResponse;
+
+public interface OrchestrationTemplateProcessHandler {
+ OrchestrationTemplateActionResponse process(VspDetails vspDetails,
+ OrchestrationTemplateCandidateData candidateData,
+ String user);
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessZipHandler.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessZipHandler.java
new file mode 100644
index 0000000000..cceacd47b3
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/process/OrchestrationTemplateProcessZipHandler.java
@@ -0,0 +1,184 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.process;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
+import org.openecomp.core.model.dao.ServiceModelDao;
+import org.openecomp.core.model.dao.ServiceModelDaoFactory;
+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.core.validation.util.MessageContainerUtil;
+import org.openecomp.sdc.activityLog.ActivityLogManager;
+import org.openecomp.sdc.activityLog.ActivityLogManagerFactory;
+import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
+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.logging.messages.AuditMessages;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
+import org.openecomp.sdc.validation.util.ValidationManagerUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.factory.CandidateServiceFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionDataExtractorFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.OrchestrationUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
+import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService;
+import org.openecomp.sdc.vendorsoftwareproduct.types.OrchestrationTemplateActionResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.FilesDataStructure;
+import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.activitylog.types.ActivityType;
+
+import java.io.ByteArrayInputStream;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+import static org.openecomp.sdc.logging.messages.AuditMessages.HEAT_VALIDATION_ERROR;
+
+public class OrchestrationTemplateProcessZipHandler implements OrchestrationTemplateProcessHandler {
+ Logger logger = LoggerFactory.getLogger(OrchestrationTemplateProcessZipHandler.class);
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private CandidateService candidateService =
+ CandidateServiceFactory.getInstance().createInterface();
+ private ServiceModelDao serviceModelDao = ServiceModelDaoFactory.getInstance().createInterface();
+ private CompositionEntityDataManager compositionEntityDataManager =
+ CompositionEntityDataManagerFactory.getInstance().createInterface();
+ private CompositionDataExtractor compositionDataExtractor =
+ CompositionDataExtractorFactory.getInstance().createInterface();
+ private ActivityLogManager activityLogManager =
+ ActivityLogManagerFactory.getInstance().createInterface();
+
+
+ public OrchestrationTemplateProcessZipHandler(){}
+
+ public OrchestrationTemplateActionResponse process(VspDetails vspDetails,
+ OrchestrationTemplateCandidateData candidateData,
+ String user) {
+ String vspId = vspDetails.getId();
+ Version version = vspDetails.getVersion();
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_VALIDATION_STARTED +
+ vspId);
+ OrchestrationTemplateActionResponse response = new OrchestrationTemplateActionResponse();
+ UploadFileResponse uploadFileResponse = new UploadFileResponse();
+ Optional<FileContentHandler> fileContent =
+ OrchestrationUtil
+ .getFileContentMap(
+ OnboardingTypesEnum.ZIP, uploadFileResponse, candidateData.getContentData().array());
+ if (!fileContent.isPresent()) {
+ response.addStructureErrors(uploadFileResponse.getErrors());
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+ HEAT_VALIDATION_ERROR));
+ return response;
+ }
+
+ Map<String, List<ErrorMessage>> uploadErrors = uploadFileResponse.getErrors();
+ FileContentHandler fileContentMap = fileContent.get();
+ FilesDataStructure structure =
+ JsonUtil.json2Object(candidateData.getFilesDataStructure(), FilesDataStructure.class);
+
+ if (CollectionUtils.isNotEmpty(structure.getUnassigned())) {
+ response.addErrorMessageToMap(SdcCommon.UPLOAD_FILE,
+ Messages.FOUND_UNASSIGNED_FILES.getErrorMessage(), ErrorLevel.ERROR);
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+ HEAT_VALIDATION_ERROR));
+ return response;
+ }
+
+
+ String manifest = candidateService.createManifest(vspDetails, structure);
+ fileContentMap.addFile(SdcCommon.MANIFEST_NAME, manifest.getBytes());
+
+ Optional<ByteArrayInputStream> zipByteArrayInputStream = candidateService
+ .fetchZipFileByteArrayInputStream(
+ vspId, candidateData, manifest, OnboardingTypesEnum.ZIP, uploadErrors);
+ if (!zipByteArrayInputStream.isPresent()) {
+ response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+ HEAT_VALIDATION_ERROR));
+ return response;
+ }
+
+ HeatStructureTree tree = createAndValidateHeatTree(response, fileContentMap);
+
+ Map<String, String> componentsQuestionnaire = new HashMap<>();
+ Map<String, Map<String, String>> componentNicsQuestionnaire = new HashMap<>();
+ Map<String, Collection<ComponentMonitoringUploadEntity>> componentMibList = new HashMap<>();
+ Map<String, Collection<ProcessEntity>> processes = new HashMap<>();
+ Map<String, ProcessEntity> processArtifact = new HashMap<>();
+
+ OrchestrationUtil.backupComponentsQuestionnaireBeforeDelete(vspId,
+ version, componentsQuestionnaire,
+ componentNicsQuestionnaire, componentMibList, processes, processArtifact);
+
+ OrchestrationUtil.deleteUploadDataAndContent(vspId, version);
+ OrchestrationUtil.saveUploadData(vspId, version, zipByteArrayInputStream.get(), fileContentMap,
+ tree);
+
+ response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+ HEAT_VALIDATION_ERROR));
+ if ( MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, response.getErrors
+ ()))) {
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_VALIDATION_COMPLETED + vspId);
+ }
+
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_TRANSLATION_STARTED + vspId);
+
+ TranslatorOutput translatorOutput =
+ HeatToToscaUtil.loadAndTranslateTemplateData(fileContentMap);
+
+ ToscaServiceModel toscaServiceModel = translatorOutput.getToscaServiceModel();
+ OrchestrationUtil.saveServiceModel(vspId, version, translatorOutput
+ .getNonUnifiedToscaServiceModel(), toscaServiceModel);
+ OrchestrationUtil.retainComponentQuestionnaireData(vspId, version, componentsQuestionnaire,
+ componentNicsQuestionnaire, componentMibList, processes, processArtifact);
+
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_TRANSLATION_COMPLETED + vspId);
+ uploadFileResponse.addStructureErrors(uploadErrors);
+
+ ActivityLogEntity activityLogEntity =
+ new ActivityLogEntity(vspId, String.valueOf(version.getMajor() + 1),
+ ActivityType.UPLOAD_HEAT.toString(), user, true, "", "");
+ activityLogManager.addActionLog(activityLogEntity, user);
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ return response;
+ }
+
+ private HeatStructureTree createAndValidateHeatTree(OrchestrationTemplateActionResponse response,
+ FileContentHandler fileContentMap) {
+ VendorSoftwareProductUtils.addFileNamesToUploadFileResponse(fileContentMap, response);
+ Map<String, List<ErrorMessage>> validationErrors =
+ ValidationManagerUtil.initValidationManager(fileContentMap).validate();
+ response.getErrors().putAll(validationErrors);
+
+ return OrchestrationUtil.createHeatTree(fileContentMap, validationErrors);
+ }
+
+ private void printAuditForErrors(List<ErrorMessage> errorList, String vspId, String auditType) {
+
+ errorList.forEach(errorMessage -> {
+ if (errorMessage.getLevel().equals(ErrorLevel.ERROR)) {
+ logger.audit(AuditMessages.AUDIT_MSG + String.format(auditType, errorMessage.getMessage(),
+ vspId));
+ }
+ });
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ConfigConstants.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ConfigConstants.java
new file mode 100644
index 0000000000..85c6fcb7b5
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ConfigConstants.java
@@ -0,0 +1,6 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types;
+
+public class ConfigConstants {
+ public static final String NAMESPACE = "Orchestration";
+ public static final String PROCESS_IMPL_KEY = "process_impl";
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/UploadFileResponse.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/UploadFileResponse.java
index 99f3fa1fdf..ca0eed2153 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/UploadFileResponse.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/UploadFileResponse.java
@@ -21,6 +21,7 @@
package org.openecomp.sdc.vendorsoftwareproduct.types;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
@@ -35,6 +36,8 @@ import java.util.Map;
public class UploadFileResponse {
private Map<String, List<ErrorMessage>> errors = new HashMap<>();
private UploadFileStatus status = UploadFileStatus.Success;
+ private OnboardingTypesEnum onboardingType;
+ private String networkPackageName;
public UploadFileStatus getStatus() {
return status;
@@ -44,6 +47,22 @@ public class UploadFileResponse {
this.status = status;
}
+ public OnboardingTypesEnum getOnboardingType() {
+ return onboardingType;
+ }
+
+ public void setOnboardingType(OnboardingTypesEnum onboardingTypesEnum) {
+ this.onboardingType = onboardingTypesEnum;
+ }
+
+ public String getNetworkPackageName() {
+ return networkPackageName;
+ }
+
+ public void setNetworkPackageName(String networkPackageName) {
+ this.networkPackageName = networkPackageName;
+ }
+
/**
* Add structure error.
*
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ValidationResponse.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ValidationResponse.java
index ea5bef13dc..09e7a40ec5 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ValidationResponse.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ValidationResponse.java
@@ -41,9 +41,6 @@ public class ValidationResponse {
private Map<String, List<ErrorMessage>> uploadDataErrors;
private Map<String, List<ErrorMessage>> compilationErrors;
private QuestionnaireValidationResult questionnaireValidationResult;
- private ComponentValidationResult componentValidationResult;
- private DeploymentFlavorValidationResult deploymentFlavorValidationResult;
-
public boolean isValid() {
return valid;
@@ -106,7 +103,7 @@ public class ValidationResponse {
}
VendorSoftwareProductUtils
- .setErrorsIntoLogger(uploadDataErrors, serviceName, targetServiceName);
+ .setErrorsIntoLogger(uploadDataErrors, serviceName, targetServiceName);
}
public Map<String, List<ErrorMessage>> getCompilationErrors() {
@@ -128,7 +125,7 @@ public class ValidationResponse {
}
VendorSoftwareProductUtils
- .setErrorsIntoLogger(uploadDataErrors, serviceName, targetServiceName);
+ .setErrorsIntoLogger(uploadDataErrors, serviceName, targetServiceName);
}
public QuestionnaireValidationResult getQuestionnaireValidationResult() {
@@ -141,48 +138,10 @@ public class ValidationResponse {
* @param questionnaireValidationResult the questionnaire validation result
*/
public void setQuestionnaireValidationResult(
- QuestionnaireValidationResult questionnaireValidationResult) {
+ QuestionnaireValidationResult questionnaireValidationResult) {
this.questionnaireValidationResult = questionnaireValidationResult;
if (questionnaireValidationResult != null && !questionnaireValidationResult.isValid()) {
valid = false;
}
}
-
-
- public ComponentValidationResult getComponentValidationResult() {
- return componentValidationResult;
- }
-
- /**
- * Sets Component validation result.
- *
- * @param componentValidationResult the Component validation result
- */
- public void setComponentValidationResult(
- ComponentValidationResult componentValidationResult) {
- this.componentValidationResult = componentValidationResult;
- if (componentValidationResult != null && !componentValidationResult.isValid()) {
- valid = false;
- }
- }
-
-
- public DeploymentFlavorValidationResult getDeploymentFlavorValidationResult() {
- return deploymentFlavorValidationResult;
- }
-
- /**
- * Sets Deployment validation result.
- *
- * @param deploymentFlavorValidationResult the Deployment validation result
- */
- public void setDeploymentFlavorValidationResult(
- DeploymentFlavorValidationResult deploymentFlavorValidationResult) {
- this.deploymentFlavorValidationResult = deploymentFlavorValidationResult;
- if (deploymentFlavorValidationResult != null && !deploymentFlavorValidationResult.isValid()) {
- valid = false;
- }
- }
-
-
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/config-orchestration.json b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/config-orchestration.json
new file mode 100644
index 0000000000..9193b818b7
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/config-orchestration.json
@@ -0,0 +1,26 @@
+{
+ "orchestration_impl": {
+ "zip": {
+ "enable": true,
+ "implementationClass": "org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.OrchestrationTemplateZipHandler"
+ },
+ "csar": {
+ "enable": true,
+ "implementationClass": "org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.OrchestrationTemplateCSARHandler"
+ }
+ },
+ "process_impl": {
+ "zip" : {
+ "enzble": true,
+ "implementationClass" : "org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.process.OrchestrationTemplateProcessZipHandler"
+ },
+ "csar": {
+ "enable": true,
+ "implementationClass": "org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.process.OrchestrationTemplateProcessCsarHandler"
+ }
+ },
+
+ "_config":{
+ "namespace": "orchestration"
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/orchestrationConfiguration.json b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/orchestrationConfiguration.json
new file mode 100644
index 0000000000..7509094b56
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/orchestrationConfiguration.json
@@ -0,0 +1,3 @@
+{
+ "zip" :"org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.process.orchestrationTemplateProcessZipHandler"
+} \ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ImagesTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ImagesTest.java
index afd797573a..5dcb7f9b62 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ImagesTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ImagesTest.java
@@ -1,32 +1,70 @@
package org.openecomp.sdc.vendorsoftwareproduct;
-import org.openecomp.core.utilities.CommonMethods;
-import org.openecomp.core.utilities.json.JsonUtil;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
import org.openecomp.sdc.common.errors.CoreException;
-import org.openecomp.sdc.common.errors.ErrorCode;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.ImageErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.NotSupportedHeatOnboardMethodErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
-import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl;
-import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
-import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
-import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.image.ImageDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.ImageManagerImpl;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.sdc.versioning.errors.VersioningErrorCodes;
import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import java.util.Collection;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
public class ImagesTest {
+ private static String VSP_ID = "VSP_ID";
+ private static String COMP_ID = "COMP_ID";
+ private static String ID = "ID";
+ private static String USER = "USER";
+ public static final Version VERSION01 = new Version(0, 1);
+
+ @Mock
+ private VendorSoftwareProductInfoDao vendorSoftwareProductInfoDao;
+
+ @Mock
+ private CompositionEntityDataManager compositionEntityDataManager;
+
+ @InjectMocks
+ @Spy
+ private ImageManagerImpl imageManager;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void createImage()
+ {
+ ImageEntity imageEntity = new ImageEntity(VSP_ID, VERSION01, COMP_ID, ID);
+ doReturn(true).when(vendorSoftwareProductInfoDao).isManual(anyObject(), anyObject());
+
+ imageManager.createImage(imageEntity, USER);
+ verify(compositionEntityDataManager).createImage(imageEntity);
+ }
+
+ @Test
+ public void createImageHeat()
+ {
+ ImageEntity imageEntity = new ImageEntity(VSP_ID, VERSION01, COMP_ID, ID);
+ doReturn(false).when(vendorSoftwareProductInfoDao).isManual(anyObject(), anyObject());
+
+ try {
+ imageManager.createImage(imageEntity, USER);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VendorSoftwareProductErrorCodes.ADD_IMAGE_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ }
+ }
/*private static final String USER1 = "imageTestUser1";
private static final String USER2 = "imageTestUser2";
private static final Version VERSION01 = new Version(0, 1);
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/QuestionnaireDataServiceTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/QuestionnaireDataServiceTest.java
index 948d46ba10..3e42a23c6a 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/QuestionnaireDataServiceTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/QuestionnaireDataServiceTest.java
@@ -48,7 +48,6 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.Com
import org.openecomp.sdc.versioning.dao.types.Version;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
import java.io.InputStream;
import java.util.List;
@@ -112,7 +111,7 @@ public class QuestionnaireDataServiceTest {
public void testQuestionnaireDataAfterIllegalUpload() {
InputStream zipInputStream = uploadFileTest.getZipInputStream("/missingYml");
UploadFileResponse uploadFileResponse = candidateManager
- .upload(vspId, VERSION, zipInputStream, USER1);
+ .upload(vspId, VERSION, zipInputStream, USER1, "zip", "missingYml");
InformationArtifactData informationArtifactData = questionnaireDataService
.generateQuestionnaireDataForInformationArtifact(vspId, vspActiveVersion);
@@ -124,7 +123,7 @@ public class QuestionnaireDataServiceTest {
InputStream zipInputStream = uploadFileTest.getZipInputStream(filePath);
UploadFileResponse uploadFileResponse = candidateManager
.upload(vspId, VERSION,
- zipInputStream, USER1);
+ zipInputStream, USER1,"zip", "file");
candidateManager.process(vspId, VERSION, USER1);
Assert.assertTrue(MapUtils.isEmpty(
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImplTest.java
index d617bf9a47..741b1bf2ea 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImplTest.java
@@ -37,9 +37,9 @@ import static org.mockito.Mockito.verify;
public class ImageManagerImplTest {
private static final String IMAGE_NOT_EXIST_MSG =
- "Vendor Software Product Image with Id image1 does not exist for Vendor Software Product with" +
- " " +
- "id VSP_ID and version 0.1";
+ "Vendor Software Product Image with Id image1 does not exist for Vendor Software Product with" +
+ " " +
+ "id VSP_ID and version 0.1";
private static final String USER = "imageTestUser";
private static final String VSP_ID = "VSP_ID";
@@ -66,7 +66,7 @@ public class ImageManagerImplTest {
@Test
public void testListWhenNone() {
final Collection<ImageEntity> imageEntities =
- imageManager.listImages(VSP_ID, VERSION, COMPONENT_ID, USER);
+ imageManager.listImages(VSP_ID, VERSION, COMPONENT_ID, USER);
Assert.assertEquals(imageEntities.size(), 0);
}
@@ -74,17 +74,17 @@ public class ImageManagerImplTest {
public void testList() {
doReturn(Arrays.asList(
- createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID),
- createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE2_ID)))
- .when(imageDao).list(anyObject());
+ createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID),
+ createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE2_ID)))
+ .when(imageDao).list(anyObject());
final Collection<ImageEntity> images =
- imageManager.listImages(VSP_ID, VERSION, COMPONENT_ID, USER);
+ imageManager.listImages(VSP_ID, VERSION, COMPONENT_ID, USER);
Assert.assertEquals(images.size(), 2);
for (ImageEntity image : images) {
Assert.assertEquals(image.getImageCompositionData().getFileName(),
- IMAGE1_ID.equals(image.getId()) ? IMAGE1_ID+"_name" : IMAGE2_ID+"_name" );
+ IMAGE1_ID.equals(image.getId()) ? IMAGE1_ID+"_name" : IMAGE2_ID+"_name" );
}
}
@@ -92,7 +92,7 @@ public class ImageManagerImplTest {
public void testCreateOnNotManualImage_negative() {
testCreate_negative(new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, null), USER,
- VendorSoftwareProductErrorCodes.ADD_IMAGE_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ VendorSoftwareProductErrorCodes.ADD_IMAGE_NOT_ALLOWED_IN_HEAT_ONBOARDING);
}
@Test
@@ -104,7 +104,7 @@ public class ImageManagerImplTest {
verify(compositionEntityDataManagerMock).createImage(expected);
}
- @Test
+ /*@Test
public void testCreateManualImageWithDuplicateName() {
ImageEntity expected = createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
@@ -124,22 +124,22 @@ public class ImageManagerImplTest {
Assert.assertEquals(VendorSoftwareProductErrorCodes.DUPLICATE_IMAGE_NAME_NOT_ALLOWED,
ex.code().id());
}
- }
+ }*/
@Test
public void testUpdateNonExistingImageId_negative() {
testUpdate_negative(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, USER,
- VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
}
@Test
public void testUpdateImage() {
doReturn(createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID))
- .when(imageDao).get(anyObject());
+ .when(imageDao).get(anyObject());
doReturn(new CompositionEntityValidationData(CompositionEntityType.image, IMAGE1_ID))
- .when(compositionEntityDataManagerMock)
- .validateEntity(anyObject(), anyObject(), anyObject());
+ .when(compositionEntityDataManagerMock)
+ .validateEntity(anyObject(), anyObject(), anyObject());
ImageEntity imageEntity = new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
Image imageData = new Image();
@@ -148,7 +148,7 @@ public class ImageManagerImplTest {
imageEntity.setImageCompositionData(imageData);
CompositionEntityValidationData validationData =
- imageManager.updateImage(imageEntity, USER);
+ imageManager.updateImage(imageEntity, USER);
Assert.assertTrue(validationData == null || validationData.getErrors() == null);
verify(imageDao).update(imageEntity);
}
@@ -156,16 +156,16 @@ public class ImageManagerImplTest {
@Test
public void testIllegalImageUpdate() {
doReturn(createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID))
- .when(imageDao).get(anyObject());
+ .when(imageDao).get(anyObject());
doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
CompositionEntityValidationData toBeReturned =
- new CompositionEntityValidationData(CompositionEntityType.image, IMAGE1_ID);
+ new CompositionEntityValidationData(CompositionEntityType.image, IMAGE1_ID);
toBeReturned.setErrors(Arrays.asList("error1", "error2"));
doReturn(toBeReturned)
- .when(compositionEntityDataManagerMock)
- .validateEntity(anyObject(), anyObject(), anyObject());
+ .when(compositionEntityDataManagerMock)
+ .validateEntity(anyObject(), anyObject(), anyObject());
ImageEntity imageEntity = new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
Image imageData = new Image();
@@ -183,7 +183,7 @@ public class ImageManagerImplTest {
@Test
public void testUpdateHEATImageFileName() throws Exception {
doReturn(createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID))
- .when(imageDao).get(anyObject());
+ .when(imageDao).get(anyObject());
ImageEntity imageEntity = new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
Image imageData = new Image();
imageData.setFileName(IMAGE1_ID + " name updated");
@@ -202,7 +202,7 @@ public class ImageManagerImplTest {
@Test
public void testGetNonExistingImageId_negative() {
testGet_negative(VSP_ID, VERSION, COMPONENT_ID, "non existing image id", USER,
- VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
}
@Test
@@ -213,12 +213,12 @@ public class ImageManagerImplTest {
doReturn(compositionSchema).when(imageManager).getImageCompositionSchema(anyObject());
CompositionEntityResponse<Image> response =
- imageManager.getImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, USER);
+ imageManager.getImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, USER);
Assert.assertEquals(response.getId(), expected.getId());
Assert.assertEquals(response.getData().getFileName(), expected.getImageCompositionData().
- getFileName());
+ getFileName());
Assert.assertEquals(response.getData().getDescription(), expected.getImageCompositionData().
- getDescription());
+ getDescription());
Assert.assertEquals(response.getSchema(), compositionSchema);
}
@@ -227,13 +227,13 @@ public class ImageManagerImplTest {
ImageEntity expected = createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
doReturn(expected).when(imageDao).get(anyObject());
testDelete_negative(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, USER,
- VendorSoftwareProductErrorCodes.DELETE_IMAGE_NOT_ALLOWED);
+ VendorSoftwareProductErrorCodes.DELETE_IMAGE_NOT_ALLOWED);
}
@Test
public void testDeleteOnNotExistImage() {
testDelete_negative(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, USER,
- VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
}
@Test
@@ -255,7 +255,7 @@ public class ImageManagerImplTest {
doReturn(schema).when(imageManager).getImageQuestionnaireSchema(anyObject());
QuestionnaireResponse questionnaire =
- imageManager.getImageQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, USER);
+ imageManager.getImageQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, USER);
Assert.assertNotNull(questionnaire);
Assert.assertEquals(questionnaire.getData(), image.getQuestionnaireData());
Assert.assertEquals(questionnaire.getSchema(), schema);
@@ -334,7 +334,7 @@ public class ImageManagerImplTest {
String updJson = "{\"format\" :\"a22\"}";
try {
imageManager.updateImageQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, updJson,
- USER);
+ USER);
Assert.fail();
}
catch(CoreException ex) {
@@ -383,7 +383,7 @@ public class ImageManagerImplTest {
}
private void testUpdate_negative(String vspId, Version version, String componentId, String
- imageId, String user, String expectedErrorCode) {
+ imageId, String user, String expectedErrorCode) {
try {
imageManager.updateImage(new ImageEntity(vspId, version, componentId, imageId), user);
Assert.fail();
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImplTest.java
index e6d06f2e2c..252e152740 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImplTest.java
@@ -6,6 +6,7 @@ import org.mockito.MockitoAnnotations;
import org.openecomp.core.model.dao.ServiceModelDao;
import org.openecomp.core.model.types.ServiceElement;
import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.healing.api.HealingManager;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
@@ -23,7 +24,6 @@ import org.openecomp.sdc.vendorsoftwareproduct.utils.ZipFileUtils;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -90,7 +90,7 @@ public class OrchestrationTemplateCandidateManagerImplTest {
doReturn("{}").when(candidateServiceMock).createManifest(anyObject(), anyObject());
doReturn(Optional.empty()).when(candidateServiceMock)
- .fetchZipFileByteArrayInputStream(anyObject(), anyObject(), anyObject(), anyObject());
+ .fetchZipFileByteArrayInputStream(anyObject(), anyObject(), anyObject(), OnboardingTypesEnum.ZIP, anyObject());
OrchestrationTemplateActionResponse response =
@@ -123,7 +123,7 @@ public class OrchestrationTemplateCandidateManagerImplTest {
UploadFileResponse uploadFileResponse = candidateManager
.upload(VSP_ID, VERSION01, new ZipFileUtils().getZipInputStream("/legalUploadWithWarning"),
- USER1);
+ USER1, "zip", "legalUploadWithWarning");
Assert.assertTrue(uploadFileResponse.getStatus() == UploadFileStatus.Success);
Assert.assertTrue(
uploadFileResponse.getErrors().get("uploadFile").get(0).getLevel() == ErrorLevel.WARNING);
@@ -136,7 +136,7 @@ public class OrchestrationTemplateCandidateManagerImplTest {
public void testUploadWithManifest() {
UploadFileResponse uploadFileResponse = candidateManager
.upload(VSP_ID, VERSION01, new ZipFileUtils().getZipInputStream("/legalUploadWithWarning"),
- USER1);
+ USER1, "zip", "legalUploadWithWarning");
Assert.assertTrue(uploadFileResponse.getStatus() == UploadFileStatus.Success);
Assert.assertTrue(
uploadFileResponse.getErrors().get("uploadFile").get(0).getLevel() == ErrorLevel.WARNING);
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java
index 2fc4385563..e0e00f8d9d 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java
@@ -39,7 +39,6 @@ import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.common.errors.ErrorCategory;
import org.openecomp.sdc.common.errors.ErrorCode;
import org.openecomp.sdc.common.errors.Messages;
-import org.openecomp.sdc.common.errors.ValidationErrorBuilder;
import org.openecomp.sdc.healing.api.HealingManager;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
@@ -54,14 +53,10 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.PackageInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.PackageInfo;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadDataEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspQuestionnaireEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
import org.openecomp.sdc.vendorsoftwareproduct.impl.mock.EnrichmentManagerFactoryImpl;
import org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.InformationArtifactGenerator;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
@@ -92,7 +87,6 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -169,10 +163,10 @@ public class VendorSoftwareProductManagerImplTest {
@Test
public void testListWhenNone() {
doReturn(new HashMap<>()).when(versioningManagerMock).listEntitiesVersionInfo
- (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1,
- VersionableEntityAction.Read);
+ (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1,
+ VersionableEntityAction.Read);
List<VersionedVendorSoftwareProductInfo> vsps =
- vendorSoftwareProductManager.listVsps(null, USER1);
+ vendorSoftwareProductManager.listVsps(null, USER1);
Assert.assertEquals(vsps.size(), 0);
}
@@ -191,16 +185,16 @@ public class VendorSoftwareProductManagerImplTest {
vspsTobeReturned.put(vsp2id, versionInfo2);
doReturn(vspsTobeReturned).when(versioningManagerMock).listEntitiesVersionInfo
- (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1,
- VersionableEntityAction.Read);
+ (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1,
+ VersionableEntityAction.Read);
VspDetails vsp1 = new VspDetails(vsp1id, VERSION01);
vsp1.setWritetimeMicroSeconds(8L);
doReturn(vsp1).when(vspInfoDaoMock)
- .get(any(VspDetails.class));
+ .get(any(VspDetails.class));
List<VersionedVendorSoftwareProductInfo> vsps =
- vendorSoftwareProductManager.listVsps(null, USER1);
+ vendorSoftwareProductManager.listVsps(null, USER1);
Assert.assertEquals(vsps.size(), 2);
}
@@ -219,11 +213,11 @@ public class VendorSoftwareProductManagerImplTest {
vspsTobeReturned.put(vsp2id, versionInfo2);
doReturn(vspsTobeReturned).when(versioningManagerMock).listEntitiesVersionInfo
- (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1,
- VersionableEntityAction.Read);
+ (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1,
+ VersionableEntityAction.Read);
List<VersionedVendorSoftwareProductInfo> vsps =
- vendorSoftwareProductManager.listVsps(VersionStatus.Final.name(), USER1);
+ vendorSoftwareProductManager.listVsps(VersionStatus.Final.name(), USER1);
Assert.assertEquals(vsps.size(), 0);
}
@@ -243,27 +237,27 @@ public class VendorSoftwareProductManagerImplTest {
vspsTobeReturned.put(vsp2id, versionInfo2);
doReturn(vspsTobeReturned).when(versioningManagerMock).listEntitiesVersionInfo
- (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1,
- VersionableEntityAction.Read);
+ (VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, USER1,
+ VersionableEntityAction.Read);
VspDetails vsp2 = new VspDetails(vsp2id, VERSION10);
vsp2.setWritetimeMicroSeconds(8L);
doReturn(vsp2).when(vspInfoDaoMock)
- .get(any(VspDetails.class));
+ .get(any(VspDetails.class));
List<VersionedVendorSoftwareProductInfo> vsps =
- vendorSoftwareProductManager.listVsps(VersionStatus.Final.name(), USER1);
+ vendorSoftwareProductManager.listVsps(VersionStatus.Final.name(), USER1);
Assert.assertEquals(vsps.size(), 1);
}
@Test(expectedExceptions = CoreException.class)
public void testCreateWithExistingName_negative() {
doThrow(new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION).build()))
- .when(vendorSoftwareProductManager).validateUniqueName("Vsp1");
+ new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION).build()))
+ .when(vendorSoftwareProductManager).validateUniqueName("Vsp1");
VspDetails expectedVsp =
- createVspDetails(null, null, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon",
- "category", "subCategory", "123", null);
+ createVspDetails(null, null, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon",
+ "category", "subCategory", "123", null);
vendorSoftwareProductManager.createVsp(expectedVsp, USER1);
}
@@ -274,11 +268,11 @@ public class VendorSoftwareProductManagerImplTest {
doNothing().when(vendorSoftwareProductManager).createUniqueName("Vsp1");
doReturn(VERSION01).when(versioningManagerMock).create(anyObject(), anyObject(), anyObject());
doReturn("{}")
- .when(vendorSoftwareProductManager).getVspQuestionnaireSchema(anyObject());
+ .when(vendorSoftwareProductManager).getVspQuestionnaireSchema(anyObject());
VspDetails vspToCreate =
- createVspDetails(null, null, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon",
- "category", "subCategory", "123", null);
+ createVspDetails(null, null, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon",
+ "category", "subCategory", "123", null);
VspDetails vsp = vendorSoftwareProductManager.createVsp(vspToCreate, USER1);
@@ -297,21 +291,21 @@ public class VendorSoftwareProductManagerImplTest {
VersionInfo versionInfo = new VersionInfo();
versionInfo.setActiveVersion(VERSION01);
doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
- VersionableEntityAction.Write);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
+ VersionableEntityAction.Write);
VspDetails existingVsp =
- createVspDetails(VSP_ID, VERSION01, "Vsp1", "Test-existingVsp", "vendorName", "vlm1Id",
- "icon", "category", "subCategory", "123", null);
+ createVspDetails(VSP_ID, VERSION01, "Vsp1", "Test-existingVsp", "vendorName", "vlm1Id",
+ "icon", "category", "subCategory", "123", null);
VspDetails updatedVsp =
- createVspDetails(VSP_ID, VERSION01, "Vsp1_updated", "Test-existingVsp", "vendorName",
- "vlm1Id", "icon", "category", "subCategory", "123", null);
+ createVspDetails(VSP_ID, VERSION01, "Vsp1_updated", "Test-existingVsp", "vendorName",
+ "vlm1Id", "icon", "category", "subCategory", "123", null);
doReturn(existingVsp).when(vspInfoDaoMock)
- .get(any(VspDetails.class));
+ .get(any(VspDetails.class));
doThrow(new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION).build()))
- .when(vendorSoftwareProductManager)
- .updateUniqueName(existingVsp.getName(), updatedVsp.getName());
+ new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION).build()))
+ .when(vendorSoftwareProductManager)
+ .updateUniqueName(existingVsp.getName(), updatedVsp.getName());
vendorSoftwareProductManager.updateVsp(updatedVsp, USER1);
}
@@ -321,21 +315,21 @@ public class VendorSoftwareProductManagerImplTest {
VersionInfo versionInfo = new VersionInfo();
versionInfo.setActiveVersion(VERSION01);
doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
- VersionableEntityAction.Write);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
+ VersionableEntityAction.Write);
VspDetails existingVsp =
- createVspDetails(VSP_ID, VERSION01, "VSP1", null, "vendorName", "vlm1Id", "icon",
- "category",
- "subCategory", "456", null);
+ createVspDetails(VSP_ID, VERSION01, "VSP1", null, "vendorName", "vlm1Id", "icon",
+ "category",
+ "subCategory", "456", null);
VspDetails updatedVsp =
- createVspDetails(VSP_ID, VERSION01, "VSP1_updated", null, "vendorName", "vlm1Id", "icon",
- "category_updated",
- "subCategory", "456", null);
+ createVspDetails(VSP_ID, VERSION01, "VSP1_updated", null, "vendorName", "vlm1Id", "icon",
+ "category_updated",
+ "subCategory", "456", null);
existingVsp.setWritetimeMicroSeconds(8L);
doReturn(existingVsp).when(vspInfoDaoMock)
- .get(any(VspDetails.class));
+ .get(any(VspDetails.class));
doNothing().when(vendorSoftwareProductManager)
- .updateUniqueName(existingVsp.getName(), updatedVsp.getName());
+ .updateUniqueName(existingVsp.getName(), updatedVsp.getName());
vendorSoftwareProductManager.updateVsp(updatedVsp, USER1);
@@ -347,26 +341,26 @@ public class VendorSoftwareProductManagerImplTest {
VersionInfo versionInfo = new VersionInfo();
versionInfo.setActiveVersion(VERSION01);
doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
- VersionableEntityAction.Write);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
+ VersionableEntityAction.Write);
List<String> fgs = new ArrayList<String>();
fgs.add("fg1"); fgs.add("fg2");
VspDetails existingVsp =
- createVspDetails(VSP_ID, VERSION01, "VSP1", null, "vendorName", "vlm1Id", "icon",
- "category",
- "subCategory", "456", fgs);
+ createVspDetails(VSP_ID, VERSION01, "VSP1", null, "vendorName", "vlm1Id", "icon",
+ "category",
+ "subCategory", "456", fgs);
List<String> updFgs = new ArrayList<String>();
updFgs.add("fg2");
VspDetails updatedVsp =
- createVspDetails(VSP_ID, VERSION01, "VSP1_updated", null, "vendorName", "vlm1Id", "icon",
- "category_updated",
- "subCategory", "456", updFgs);
+ createVspDetails(VSP_ID, VERSION01, "VSP1_updated", null, "vendorName", "vlm1Id", "icon",
+ "category_updated",
+ "subCategory", "456", updFgs);
existingVsp.setWritetimeMicroSeconds(8L);
doReturn(existingVsp).when(vspInfoDaoMock)
- .get(any(VspDetails.class));
+ .get(any(VspDetails.class));
doNothing().when(vendorSoftwareProductManager)
- .updateUniqueName(existingVsp.getName(), updatedVsp.getName());
+ .updateUniqueName(existingVsp.getName(), updatedVsp.getName());
DeploymentFlavorEntity dfEntity = new DeploymentFlavorEntity(VSP_ID,VERSION01,"DF_ID");
DeploymentFlavor flavor = new DeploymentFlavor();
@@ -400,18 +394,18 @@ public class VendorSoftwareProductManagerImplTest {
versionInfo.setStatus(VersionStatus.Locked);
versionInfo.setLockingUser(USER1);
doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
- VersionableEntityAction.Read);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
+ VersionableEntityAction.Read);
VspDetails existingVsp =
- createVspDetails(VSP_ID, VERSION01, "VSP1", null, "vendorName", "vlm1Id", "icon",
- "category",
- "subCategory", "456", null);
+ createVspDetails(VSP_ID, VERSION01, "VSP1", null, "vendorName", "vlm1Id", "icon",
+ "category",
+ "subCategory", "456", null);
existingVsp.setWritetimeMicroSeconds(8L);
doReturn(existingVsp).when(vspInfoDaoMock).get(any(VspDetails.class));
VspDetails actualVsp =
- vendorSoftwareProductManager.getVsp(VSP_ID, VERSION01, USER1);
+ vendorSoftwareProductManager.getVsp(VSP_ID, VERSION01, USER1);
assertVspsEquals(actualVsp, existingVsp);
}
@@ -424,37 +418,37 @@ public class VendorSoftwareProductManagerImplTest {
versionInfo.setStatus(VersionStatus.Locked);
versionInfo.setLockingUser(USER2);
doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
- VersionableEntityAction.Read);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
+ VersionableEntityAction.Read);
VspDetails existingVsp =
- createVspDetails(VSP_ID, VERSION01, "VSP1", null, "vendorName", "vlm1Id", "icon",
- "category",
- "subCategory", "456", null);
+ createVspDetails(VSP_ID, VERSION01, "VSP1", null, "vendorName", "vlm1Id", "icon",
+ "category",
+ "subCategory", "456", null);
existingVsp.setWritetimeMicroSeconds(8L);
doReturn(existingVsp)
- .when(vspInfoDaoMock).get(any(VspDetails.class));
+ .when(vspInfoDaoMock).get(any(VspDetails.class));
VspDetails actualVsp =
- vendorSoftwareProductManager.getVsp(VSP_ID, VERSION01, USER1);
+ vendorSoftwareProductManager.getVsp(VSP_ID, VERSION01, USER1);
VspDetails expectedVsp =
- vspInfoDaoMock
- .get(new VspDetails(VSP_ID, VERSION01));
+ vspInfoDaoMock
+ .get(new VspDetails(VSP_ID, VERSION01));
assertVspsEquals(actualVsp, expectedVsp);
}
@Test
public void testCheckin() {
doReturn(VERSION01).when(versioningManagerMock)
- .checkin(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
- USER1, null);
+ .checkin(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
+ USER1, null);
Version version = vendorSoftwareProductManager.checkin(VSP_ID, USER1);
Assert.assertEquals(version, VERSION01);
verify(versioningManagerMock)
- .checkin(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
- USER1, null);
+ .checkin(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
+ USER1, null);
verify(activityLogManagerMock).addActionLog(activityLogEntityArg.capture(), eq(USER1));
ActivityLogEntity activityLogEntity = activityLogEntityArg.getValue();
Assert.assertEquals(activityLogEntity.getVersionId(), String.valueOf(VERSION01.getMajor() + 1));
@@ -464,14 +458,14 @@ public class VendorSoftwareProductManagerImplTest {
@Test
public void testCheckout() {
doReturn(VERSION01).when(versioningManagerMock)
- .checkout(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
- USER1);
+ .checkout(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
+ USER1);
Version version = vendorSoftwareProductManager.checkout(VSP_ID, USER1);
Assert.assertEquals(version, VERSION01);
verify(versioningManagerMock)
- .checkout(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
- USER1);
+ .checkout(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
+ USER1);
verify(activityLogManagerMock).addActionLog(activityLogEntityArg.capture(), eq(USER1));
ActivityLogEntity activityLogEntity = activityLogEntityArg.getValue();
@@ -486,11 +480,11 @@ public class VendorSoftwareProductManagerImplTest {
VersionInfo versionInfo = new VersionInfo();
versionInfo.setActiveVersion(existingVersion);
doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
- VSP_ID, USER1, VersionableEntityAction.Read);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ VSP_ID, USER1, VersionableEntityAction.Read);
doReturn(VERSION01).when(versioningManagerMock).undoCheckout(VendorSoftwareProductConstants
- .VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1);
+ .VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1);
VspDetails vsp = new VspDetails(VSP_ID, existingVersion);
vsp.setName("ExistingName");
@@ -552,22 +546,22 @@ public class VendorSoftwareProductManagerImplTest {
VersionInfo versionInfo = new VersionInfo();
versionInfo.setActiveVersion(VERSION01);
doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
- VSP_ID, USER1, VersionableEntityAction.Read);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE,
+ VSP_ID, USER1, VersionableEntityAction.Read);
VspDetails vsp =
- createVspDetails(VSP_ID, VERSION01, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon",
- "category", "subCategory", "licenseAgreementId",
- Collections.singletonList("featureGroupId"));
+ createVspDetails(VSP_ID, VERSION01, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon",
+ "category", "subCategory", "licenseAgreementId",
+ Collections.singletonList("featureGroupId"));
doReturn(vsp).when(vspInfoDaoMock).get(anyObject());
UploadDataEntity uploadData = new UploadDataEntity(VSP_ID, VERSION01);
uploadData.setContentData(
- ByteBuffer.wrap(FileUtils.toByteArray(getFileInputStream("/emptyComposition"))));
+ ByteBuffer.wrap(FileUtils.toByteArray(getFileInputStream("/emptyComposition"))));
doReturn(uploadData).when(orchestrationTemplateDataDaoMock)
- .getOrchestrationTemplate(anyObject(), anyObject());
+ .getOrchestrationTemplate(anyObject(), anyObject());
doReturn(new ToscaServiceModel(new FileContentHandler(), new HashMap<>(),
- "MainServiceTemplate.yaml"))
- .when(serviceModelDaoMock).getServiceModel(VSP_ID, VERSION01);
+ "MainServiceTemplate.yaml"))
+ .when(serviceModelDaoMock).getServiceModel(VSP_ID, VERSION01);
ValidationResponse validationResponse = vendorSoftwareProductManager.submit(VSP_ID, USER1);
Assert.assertNotNull(validationResponse);
@@ -576,8 +570,8 @@ public class VendorSoftwareProductManagerImplTest {
Assert.assertEquals(validationResponse.getLicensingDataErrors(), 1);
verify(versioningManagerMock, never())
- .submit(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
- USER1, null);
+ .submit(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
+ USER1, null);
//TODO - check..
verify(activityLogManagerMock, never()).addActionLog(any(ActivityLogEntity.class), eq(USER1));
@@ -590,20 +584,20 @@ public class VendorSoftwareProductManagerImplTest {
EnrichmentManagerFactory.getInstance();
AbstractFactoryBase
- .registerFactory(EnrichmentManagerFactory.class, EnrichmentManagerFactoryImpl.class);
+ .registerFactory(EnrichmentManagerFactory.class, EnrichmentManagerFactoryImpl.class);
VspDetails vsp =
- createVspDetails(VSP_ID, VERSION01, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon",
- "category", "subCategory", "123", Collections.singletonList("fg1"));
+ createVspDetails(VSP_ID, VERSION01, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon",
+ "category", "subCategory", "123", Collections.singletonList("fg1"));
doReturn(vsp).when(vspInfoDaoMock).get(anyObject());
UploadDataEntity uploadData = new UploadDataEntity(VSP_ID, VERSION01);
uploadData.setContentData(
- ByteBuffer.wrap(FileUtils.toByteArray(getFileInputStream("/emptyComposition"))));
+ ByteBuffer.wrap(FileUtils.toByteArray(getFileInputStream("/emptyComposition"))));
doReturn(uploadData).when(orchestrationTemplateDataDaoMock)
- .getOrchestrationTemplate(anyObject(), anyObject());
+ .getOrchestrationTemplate(anyObject(), anyObject());
doReturn(new ToscaServiceModel(new FileContentHandler(), new HashMap<>(),
- "MainServiceTemplate.yaml"))
- .when(serviceModelDaoMock).getServiceModel(VSP_ID, VERSION01);
+ "MainServiceTemplate.yaml"))
+ .when(serviceModelDaoMock).getServiceModel(VSP_ID, VERSION01);
ValidationResponse validationResponse = vendorSoftwareProductManager.submit(VSP_ID, USER1);
Assert.assertTrue(validationResponse.isValid());
@@ -613,8 +607,8 @@ public class VendorSoftwareProductManagerImplTest {
Assert.assertNull(vsp2.getVersionInfo().getLockingUser());*/
verify(versioningManagerMock)
- .submit(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
- USER1, null);
+ .submit(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID,
+ USER1, null);
verify(activityLogManagerMock).addActionLog(activityLogEntityArg.capture(), eq(USER1));
ActivityLogEntity activityLogEntity = activityLogEntityArg.getValue();
Assert.assertEquals(activityLogEntity.getVersionId(), String.valueOf(VERSION10.getMajor()));
@@ -633,11 +627,11 @@ public class VendorSoftwareProductManagerImplTest {
VersionInfo versionInfo = new VersionInfo();
versionInfo.setActiveVersion(VERSION10);
doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
- VersionableEntityAction.Read);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
+ VersionableEntityAction.Read);
doReturn(new ToscaServiceModel(new FileContentHandler(), new HashMap<>(), "")).when
- (enrichedServiceModelDaoMock).getServiceModel(VSP_ID, VERSION10);
+ (enrichedServiceModelDaoMock).getServiceModel(VSP_ID, VERSION10);
VspDetails vsp = new VspDetails(VSP_ID, VERSION10);
vsp.setVendorId("vendorId");
@@ -646,8 +640,8 @@ public class VendorSoftwareProductManagerImplTest {
doReturn(vsp).when(vspInfoDaoMock).get(any(VspDetails.class));
doReturn(new FileContentHandler()).when(licenseArtifactsServiceMock)
- .createLicenseArtifacts(VSP_ID, vsp.getVendorId(), VERSION10, vsp.getFeatureGroups(),
- USER1);
+ .createLicenseArtifacts(VSP_ID, vsp.getVendorId(), VERSION10, vsp.getFeatureGroups(),
+ USER1);
PackageInfo packageInfo = vendorSoftwareProductManager.createPackage(VSP_ID, VERSION10, USER1);
Assert.assertNotNull(packageInfo.getVspId());
@@ -659,7 +653,7 @@ public class VendorSoftwareProductManagerImplTest {
InputStream zis = getFileInputStream("/vspmanager/zips/missingYml.zip");
UploadFileResponse uploadFileResponse =
- candidateManager.upload(VSP_ID, VERSION01, zis, USER1);
+ candidateManager.upload(VSP_ID, VERSION01, zis, USER1, "zip", "missingYml");
Assert.assertEquals(uploadFileResponse.getErrors().size(), 0);
}
@@ -671,8 +665,8 @@ public class VendorSoftwareProductManagerImplTest {
try {
candidateManager
- .upload(VSP_ID, VERSION01,
- url.openStream(), USER1);
+ .upload(VSP_ID, VERSION01,
+ url.openStream(), USER1, "zip", "notZipFile");
candidateManager.process(VSP_ID, VERSION01, USER1);
} catch (Exception ce) {
Assert.assertEquals(ce.getMessage(), Messages.CREATE_MANIFEST_FROM_ZIP.getErrorMessage());
@@ -680,118 +674,18 @@ public class VendorSoftwareProductManagerImplTest {
verify(activityLogManagerMock, never()).addActionLog(any(ActivityLogEntity.class), eq(USER1));
}
-/*
- @Test
- public void testEnrichModelInSubmit() {
- UniqueValueUtil
- .deleteUniqueValue(VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
- "VSP_syb");
- VspDetails vspDetails = vendorSoftwareProductManager.createVsp(
- createVspDetails(null, null, "VSP_syb", "Test-vsp_syb", "vendorName", "vlm1Id", "icon",
- "category", "subCategory", "456", null), USER1);
- String id = vspDetails.getId();
-
- //upload file
- InputStream zis = getFileInputStream("/vspmanager/zips/fullComposition.zip");
- candidateManager.upload(id, VERSION01, zis, USER1);
- OrchestrationTemplateActionResponse uploadFileResponse =
- candidateManager.process(id, VERSION01, USER1);
-
- //check in
- vendorSoftwareProductManager.checkin(id, USER1);
- //submit
- try {
- ValidationResponse result = vendorSoftwareProductManager.submit(id, USER1);
- } catch (IOException exception) {
- Assert.fail();
- }
- VersionedVendorSoftwareProductInfo details =
- vendorSoftwareProductManager.getVsp(id, null, USER1);
- Collection<ComponentEntity> components =vendorSoftwareProductManager
- .listComponents(id, details.getVersionInfo().getActiveVersion(), USER1);
-
- ToscaServiceModel model =
- (ToscaServiceModel) EnrichedServiceModelDaoFactory.getInstance().createInterface()
- .getServiceModel(id, details.getVersionInfo().getActiveVersion());
-
- Map<String, CapabilityDefinition> capabilities = new HashMap<>();
- for (ComponentEntity component : components) {
- model.getServiceTemplates().
- entrySet().
- stream().
- filter(entryValue -> entryValue.getValue() != null &&
- entryValue.getValue().getNode_types() != null &&
- entryValue.getValue().
- getNode_types().
- containsKey(component.getComponentCompositionData().getName())).
- forEach(entryValue -> entryValue.getValue().getNode_types().
- values().
- stream().
- filter(type -> MapUtils.isNotEmpty(type.getCapabilities())).
- forEach(type -> type.getCapabilities().
- entrySet().
- forEach(entry -> addCapability(entryValue.getKey(), capabilities, entry.getKey(),
- entry.getValue()))));
-
- }
-
- Assert.assertNotNull(capabilities);
- }
-
- @Test(dependsOnMethods = {"testCreatePackage"})
- public void testEnrichedFilesDeletedOnNewUpload() throws IOException {
- Version activeVersion;
-
- createPackageFromUpload(VSP_ID, USER1, "/fullComposition");
- activeVersion = vendorSoftwareProductManager.getVsp(VSP_ID, null, USER1).getVersionInfo()
- .getActiveVersion();
-
- List<ServiceArtifact> firstExternalArtifacts = enrichedServiceModelDaoMock
- .getExternalArtifacts(VSP_ID, activeVersion);
- ToscaServiceModel firstServiceModel = enrichedServiceModelDaoMock.getServiceModel(VSP_ID,
- activeVersion);
-
- createPackageFromUpload(VSP_ID, USER1, "/emptyComposition");
- activeVersion = vendorSoftwareProductManager.getVsp(VSP_ID, null, USER1).getVersionInfo()
- .getActiveVersion();
-
- List<ServiceArtifact> secondExternalArtifacts = enrichedServiceModelDaoMock
- .getExternalArtifacts(VSP_ID, activeVersion);
- ToscaServiceModel secondServiceModel = enrichedServiceModelDaoMock.getServiceModel(VSP_ID,
- activeVersion);
-
- Assert.assertNotEquals(firstExternalArtifacts, secondExternalArtifacts);
- Assert.assertNotEquals(firstServiceModel, secondServiceModel);
-
- }
-
- @Test(dependsOnMethods = {"testMibsDeletedInCsar"})
- public void testServiceTemplatesAreDeletedInCsarOnNewUpload() throws IOException {
- String nestedPath = "Definitions" + File.separator + "nested";
-
- uploadFileAndProcess(VSP_ID, USER1, "/vspmanager/zips/fullCompositionNested.zip");
- checkinSubmitCreatePackage(VSP_ID, USER1);
- List<String> nestedFileNamesServiceTemplates =
- getWantedFileNamesFromCsar(nestedPath);
- uploadFileAndProcess(VSP_ID, USER1, "/vspmanager/zips/fullComposition.zip");
- checkinSubmitCreatePackage(VSP_ID, USER1);
- List<String> emptyNestedNamesList = getWantedFileNamesFromCsar(nestedPath);
-
- Assert.assertEquals(emptyNestedNamesList.size(), 0);
- Assert.assertNotEquals(emptyNestedNamesList.size(), nestedFileNamesServiceTemplates.size());
- }*/
private List<String> getWantedFileNamesFromCsar(String pathInCsar)
- throws IOException {
+ throws IOException {
File translatedFile = vendorSoftwareProductManager.getTranslatedFile(VSP_ID, VERSION10, USER1);
return getFileNamesFromFolderInCsar(translatedFile,
- pathInCsar);
+ pathInCsar);
}
private List<String> getFileNamesFromFolderInCsar(File csar, String folderName)
- throws IOException {
+ throws IOException {
List<String> fileNames = new ArrayList<>();
ZipInputStream zip = new ZipInputStream(new FileInputStream(csar));
@@ -806,31 +700,16 @@ public class VendorSoftwareProductManagerImplTest {
return fileNames;
}
- /*
- //Disabled for sonar null pointer issue for componentEntities
- private Pair<String, String> uploadMib(String vspId, String user, String filePath,
- String fileName) {
- List<ComponentEntity> componentEntities = null;
- //(List<ComponentEntity>) vendorSoftwareProductManager.listComponents(vspId, null, user);
- monitoringUploadsManager.upload(getFileInputStream(filePath),
- fileName, vspId,
- VERSION01, componentEntities.get(0).getId(), MonitoringUploadType.SNMP_POLL, user);
- //TODO: add validate of addActionLog() func call
-
- return new ImmutablePair<>(componentEntities.get(0).getId(),
- componentEntities.get(0).getComponentCompositionData()
- .getDisplayName());
- }*/
private void createPackageFromUpload(String vspId, String user, String filePath)
- throws IOException {
+ throws IOException {
uploadFileAndProcess(vspId, user, filePath);
checkinSubmitCreatePackage(vspId, user);
}
private void uploadFileAndProcess(String vspId, String user, String filePath) {
vendorSoftwareProductManager.checkout(vspId, user);
- candidateManager.upload(vspId, VERSION01, getFileInputStream(filePath), user);
+ candidateManager.upload(vspId, VERSION01, getFileInputStream(filePath), user, "zip", "file");
candidateManager.process(vspId, VERSION01, user);
}
@@ -888,11 +767,11 @@ public class VendorSoftwareProductManagerImplTest {
*/
private void testLegalUpload(String vspId, Version version, InputStream upload, String user) {
- candidateManager.upload(vspId, VERSION01, upload, USER1);
+ candidateManager.upload(vspId, VERSION01, upload, USER1, "zip", "file");
candidateManager.process(vspId, VERSION01, user);
UploadDataEntity uploadData =
- orchestrationTemplateDataDaoMock.getOrchestrationTemplate(vspId, version);
+ orchestrationTemplateDataDaoMock.getOrchestrationTemplate(vspId, version);
Assert.assertNotNull(uploadData);
}
@@ -914,28 +793,11 @@ public class VendorSoftwareProductManagerImplTest {
private void assertVSPInWantedLocationInVSPList(String vspId, int location, String user) {
List<VersionedVendorSoftwareProductInfo> vspList =
- vendorSoftwareProductManager.listVsps(null, user);
+ vendorSoftwareProductManager.listVsps(null, user);
Assert.assertEquals(vspList.get(location).getVspDetails().getId(), vspId);
}
- // private void assertInfoArtifactIsInRightPathInCsar(String vspId, String zipFileName)
-// throws IOException {
-// ZipInputStream inputZipStream = new ZipInputStream(new FileInputStream(new File(zipFileName)));
-// boolean isInfoArtifactInZip = false;
-//
-// ZipEntry zipEntry;
-// while ((zipEntry = inputZipStream.getNextEntry()) != null) {
-// String currentEntryName = zipEntry.getName();
-// if(currentEntryName.equals("Artifacts\\Informative\\Guide\\VSP_" +
-// vspId + "_Information.txt")){
-// isInfoArtifactInZip = true;
-// break;
-// }
-// }
-//
-// Assert.assertTrue(isInfoArtifactInZip);
-// }
static VspDetails createVspDetails(String id, Version version, String name, String desc,
String vendorName, String vlm, String icon,
String category, String subCategory,
@@ -969,68 +831,30 @@ public class VendorSoftwareProductManagerImplTest {
Assert.assertEquals(actual.getFeatureGroups(), expected.getFeatureGroups());
}
-
-// @Test
-// public void testDownloadFile() throws IOException {
-// VspDetails expectedVsp = VSPCommon.createVspDetails(null, null, String.format("VSP-test-%s", vlm1Id), "Test-vsp", "vendorName", "vlm1Id", "icon", "category", "subCategory", "123", null);
-// VspDetails createdVsp = vendorSoftwareProductManager.createVsp(expectedVsp, USER1);
-//
-// id005 = createdVsp.getId();
-// Assert.assertNotNull(id005);
-// Assert.assertNotNull(createdVsp.getVersion());
-//
-// try (InputStream zipInputStream = new ZipFileUtils().getZipInputStream("/legalUploadWithWarning")) {
-//
-// UploadFileResponse uploadFileResponse = vendorSoftwareProductManager.upload(id005, zipInputStream, USER1);
-// vendorSoftwareProductManager.process(id005, USER1);
-// Optional<File> fileCandidate = vendorSoftwareProductManager.get(id005, USER1);
-//
-// File latestHeatPackage = fileCandidate.get();
-//
-// zipInputStream.reset();
-// byte[] uploaded = IOUtils.toByteArray(zipInputStream);
-//
-// Optional<FileContentHandler> zipContentMap = vendorSoftwareProductManager.getZipContentMap(uploadFileResponse, uploaded);
-// FileContentHandler fileContentHandler = new FileContentHandler();
-// if(zipContentMap.isPresent()){
-// fileContentHandler = zipContentMap.get();
-// }
-//
-// uploaded = IOUtils.toByteArray(fileContentHandler.getFiles().values());
-//
-// byte[] downloaded;
-// try (BufferedInputStream fileStream = new BufferedInputStream(new FileInputStream(latestHeatPackage))) {
-// downloaded = IOUtils.toByteArray(fileStream);
-// }
-//
-// Assert.assertTrue(Arrays.equals(uploaded, downloaded));
-// }
-// }
-
- // todo ********************** move to common **************************************
+ // todo ********************** move to common **************************************
private void mockVersioning(VersionableEntityAction action) {
VersionInfo versionInfo = new VersionInfo();
versionInfo.setActiveVersion(VERSION01);
doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
- action);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1,
+ action);
}
private void mockVersioningEntityNotExist(VersionableEntityAction action, String vspId) {
doThrow(new CoreException(new EntityNotExistErrorBuilder(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vspId).build()))
- .when(versioningManagerMock).getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vspId, USER1,
- action);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vspId).build()))
+ .when(versioningManagerMock).getEntityVersionInfo(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, vspId, USER1,
+ action);
}
private void MockVersioningEntityLocked(VersionableEntityAction action) {
doThrow(new CoreException(new EditOnEntityLockedByOtherErrorBuilder(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1)
- .build()))
- .when(versioningManagerMock).getEntityVersionInfo(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER2,
- action);
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER1)
+ .build()))
+ .when(versioningManagerMock).getEntityVersionInfo(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE, VSP_ID, USER2,
+ action);
}
} \ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/UploadFileTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/UploadFileTest.java
index 236b7e7594..dfb7409bd0 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/UploadFileTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/UploadFileTest.java
@@ -27,6 +27,7 @@ import org.mockito.MockitoAnnotations;
import org.mockito.Spy;
import org.openecomp.core.model.dao.ServiceModelDao;
import org.openecomp.core.model.types.ServiceElement;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.sdc.healing.api.HealingManager;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
@@ -37,92 +38,86 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.vendorsoftwareproduct.impl.OrchestrationTemplateCandidateManagerImpl;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
-import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService;
import org.openecomp.sdc.vendorsoftwareproduct.services.impl.filedatastructuremodule.CandidateServiceImpl;
+import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
import org.openecomp.sdc.vendorsoftwareproduct.utils.VSPCommon;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
import java.net.URL;
import java.util.zip.ZipOutputStream;
import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;
+import static org.testng.Assert.assertEquals;
public class UploadFileTest {
- private static final String USER1 = "vspTestUser1";
-
- public static final Version VERSION01 = new Version(0, 1);
- @Mock
- private VendorSoftwareProductDao vendorSoftwareProductDaoMock;
- @Mock
- private OrchestrationTemplateDao orchestrationTemplateDataDaoMock;
- @Spy
- private CandidateServiceImpl candidateService;
- @Mock
- private HealingManager healingManagerMock;
- @Mock
- private CompositionDataExtractor compositionDataExtractorMock;
- @Mock
- private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDaoMock;
- @Mock
- private CompositionEntityDataManager compositionEntityDataManagerMock;
- @Mock
- private VendorSoftwareProductInfoDao vspInfoDaoMock;
-
- @InjectMocks
- private OrchestrationTemplateCandidateManagerImpl candidateManager;
-
- private static String vlm1Id;
- public static String id001 = null;
- public static String id002 = null;
-
- public static Version activeVersion002 = null;
-
-
- @BeforeMethod
- public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
- }
-
- @Test
- public void testUploadFile() {
- VspDetails vspDetails = new VspDetails("dummyId", new Version(1, 0));
- doReturn(vspDetails).when(vspInfoDaoMock).get(any(VspDetails.class));
- candidateManager.upload(id001, activeVersion002, getZipInputStream("/legalUpload"), USER1);
- }
-
-
- private void testLegalUpload(String vspId, Version version, InputStream upload, String user) {
- candidateManager.upload(vspId, activeVersion002, upload, user);
-
- UploadDataEntity uploadData =
- orchestrationTemplateDataDaoMock.getOrchestrationTemplate(vspId, version);
-
- }
-
- public InputStream getZipInputStream(String name) {
- URL url = this.getClass().getResource(name);
- File templateDir = new File(url.getFile());
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ZipOutputStream zos = new ZipOutputStream(baos);
-
- VSPCommon.zipDir(templateDir, "", zos, true);
- try {
- zos.close();
- } catch (IOException e) {
- e.printStackTrace();
+ private static final String USER1 = "vspTestUser1";
+
+ public static final Version VERSION01 = new Version(0, 1);
+ @Mock
+ private VendorSoftwareProductDao vendorSoftwareProductDaoMock;
+ @Mock
+ private OrchestrationTemplateDao orchestrationTemplateDataDaoMock;
+ @Spy
+ private CandidateServiceImpl candidateService;
+ @Mock
+ private HealingManager healingManagerMock;
+ @Mock
+ private CompositionDataExtractor compositionDataExtractorMock;
+ @Mock
+ private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDaoMock;
+ @Mock
+ private CompositionEntityDataManager compositionEntityDataManagerMock;
+ @Mock
+ private VendorSoftwareProductInfoDao vspInfoDaoMock;
+
+ @InjectMocks
+ private OrchestrationTemplateCandidateManagerImpl candidateManager;
+
+ private static String vlm1Id;
+ public static String id001 = null;
+ public static String id002 = null;
+
+ public static Version activeVersion002 = null;
+
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testUploadFile() {
+ VspDetails vspDetails = new VspDetails("dummyId", new Version(1, 0));
+ doReturn(vspDetails).when(vspInfoDaoMock).get(any(VspDetails.class));
+ candidateManager.upload(id001, activeVersion002, getZipInputStream("/legalUpload"), USER1, OnboardingTypesEnum.ZIP.toString(), "legalUpload");
+ }
+
+
+ private void testLegalUpload(String vspId, Version version, InputStream upload, String user) {
+ UploadFileResponse uploadFileResponse = candidateManager.upload(vspId, activeVersion002,
+ upload, user, OnboardingTypesEnum.ZIP.toString(),"file" );
+ assertEquals(uploadFileResponse.getOnboardingType(), OnboardingTypesEnum.ZIP);
+ UploadDataEntity uploadData =
+ orchestrationTemplateDataDaoMock.getOrchestrationTemplate(vspId, version);
+
+ }
+
+ public InputStream getZipInputStream(String name) {
+ URL url = this.getClass().getResource(name);
+ File templateDir = new File(url.getFile());
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ try (ZipOutputStream zos = new ZipOutputStream(baos)) {
+ VSPCommon.zipDir(templateDir, "", zos, true);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return new ByteArrayInputStream(baos.toByteArray());
}
- return new ByteArrayInputStream(baos.toByteArray());
- }
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/csar/ManifestParsingTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/csar/ManifestParsingTest.java
new file mode 100644
index 0000000000..3332e81e36
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/csar/ManifestParsingTest.java
@@ -0,0 +1,58 @@
+package org.openecomp.sdc.vendorsoftwareproduct.upload.csar;
+
+import org.junit.Test;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar.OnboardingManifest;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import static org.junit.Assert.*;
+
+public class ManifestParsingTest {
+
+ @Test
+ public void testSuccessfulParsing() throws IOException {
+ try (InputStream is = getClass().getResourceAsStream("/vspmanager.csar/manifest/ValidTosca.mf")) {
+ OnboardingManifest onboardingManifest = new OnboardingManifest(is);
+ assertTrue(onboardingManifest.isValid());
+ assertEquals(onboardingManifest.getMetadata().size(), 4);
+ assertEquals(onboardingManifest.getSources().size(), 5);
+ }
+ }
+
+ @Test
+ public void testNoMetadataParsing() throws IOException {
+ try (InputStream is = getClass().getResourceAsStream("/vspmanager.csar/manifest/InvalidTosca1.mf")) {
+ OnboardingManifest onboardingManifest = new OnboardingManifest(is);
+ assertFalse(onboardingManifest.isValid());
+ assertTrue(onboardingManifest.getErrors().stream().
+ filter(error -> error.contains(Messages.MANIFEST_INVALID_LINE.getErrorMessage().substring(0, 10)))
+ .findAny().isPresent());
+ }
+ }
+
+ @Test
+ public void testBrokenMDParsing() throws IOException {
+ try (InputStream is = getClass().getResourceAsStream("/vspmanager.csar/manifest/InvalidTosca2.mf")) {
+ OnboardingManifest onboardingManifest = new OnboardingManifest(is);
+ assertFalse(onboardingManifest.isValid());
+ assertTrue(onboardingManifest.getErrors().stream().
+ filter(error -> error.contains(Messages.MANIFEST_INVALID_LINE.getErrorMessage().substring(0, 10)))
+ .findAny().isPresent());
+ }
+ }
+
+ @Test
+ public void testNoMetaParsing() throws IOException {
+ try (InputStream is = getClass().getResourceAsStream("/vspmanager.csar/manifest/InvalidTosca4.mf")) {
+ OnboardingManifest onboardingManifest = new OnboardingManifest(is);
+ assertFalse(onboardingManifest.isValid());
+ assertTrue(onboardingManifest.getErrors().stream().
+ filter(error -> error.contains(Messages.MANIFEST_NO_METADATA.getErrorMessage().substring(0, 10)))
+ .findAny().isPresent());
+ }
+ }
+
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/csar/UploadCSARFileTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/csar/UploadCSARFileTest.java
new file mode 100644
index 0000000000..a7fc0e1ba0
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/csar/UploadCSARFileTest.java
@@ -0,0 +1,221 @@
+/*-
+ * ============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.vendorsoftwareproduct.upload.csar;
+
+
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.openecomp.core.model.dao.ServiceModelDao;
+import org.openecomp.core.model.types.ServiceElement;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.healing.api.HealingManager;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.OrchestrationTemplateCandidateManagerImpl;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
+import org.openecomp.sdc.vendorsoftwareproduct.services.impl.filedatastructuremodule.CandidateServiceImpl;
+import org.openecomp.sdc.vendorsoftwareproduct.services.impl.filedatastructuremodule.ManifestCreatorNamingConventionImpl;
+import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.List;
+import java.util.function.Predicate;
+
+import static org.junit.Assert.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+
+public class UploadCSARFileTest {
+ private static final String USER1 = "vspTestUser1";
+
+ public static final Version VERSION01 = new Version(0, 1);
+
+ @Mock
+ private VendorSoftwareProductDao vendorSoftwareProductDaoMock;
+ @Mock
+ private OrchestrationTemplateDao orchestrationTemplateDataDaoMock;
+
+ @Spy
+ private CandidateServiceImpl candidateService;
+ @Mock
+ private HealingManager healingManagerMock;
+ @Mock
+ private CompositionDataExtractor compositionDataExtractorMock;
+ @Mock
+ private ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDaoMock;
+ @Mock
+ private CompositionEntityDataManager compositionEntityDataManagerMock;
+ @Mock
+ private VendorSoftwareProductInfoDao vspInfoDaoMock;
+ @Mock
+ private OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDao;
+ @Mock
+ private ManifestCreatorNamingConventionImpl manifestCreator;
+
+ private OrchestrationTemplateCandidateManagerImpl candidateManager;
+
+
+ public static String id001 = null;
+
+ public static Version activeVersion002 = null;
+
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ candidateService = new CandidateServiceImpl(manifestCreator,orchestrationTemplateCandidateDao);
+ candidateManager = new OrchestrationTemplateCandidateManagerImpl( vendorSoftwareProductDaoMock,
+ vspInfoDaoMock,
+ orchestrationTemplateDataDaoMock,
+ candidateService, healingManagerMock,
+ compositionDataExtractorMock,
+ serviceModelDaoMock,
+ compositionEntityDataManagerMock,
+ null,
+ null,
+ null,
+ null,
+ null);
+ }
+
+ @Test
+ public void testSuccessfulUploadFile() throws Exception {
+ VspDetails vspDetails = new VspDetails("dummyId", new Version(1, 0));
+ doReturn(vspDetails).when(vspInfoDaoMock).get(any(VspDetails.class));
+
+ try (InputStream is = getClass().getResourceAsStream("/vspmanager.csar/SDCmock.csar")) {
+ UploadFileResponse uploadFileResponse = candidateManager.upload(id001, activeVersion002, is, USER1, "csar", "SDCmock");
+ assertEquals(uploadFileResponse.getOnboardingType(), OnboardingTypesEnum.CSAR);
+ assertEquals(0, uploadFileResponse.getErrors().size());
+ assertTrue(uploadFileResponse.getErrors().isEmpty());
+ }
+ }
+
+ @Test
+ public void testFail1UploadFile() throws Exception {
+ VspDetails vspDetails = new VspDetails("dummyId", new Version(1, 0));
+ doReturn(vspDetails).when(vspInfoDaoMock).get(any(VspDetails.class));
+
+ try (InputStream is = getClass().getResourceAsStream("/vspmanager.csar/SDCmockFail1.csar")) {
+ UploadFileResponse uploadFileResponse = candidateManager.upload(id001, activeVersion002, is, USER1,
+ "csar", "SDCmockFail1");
+ assertEquals(uploadFileResponse.getOnboardingType(), OnboardingTypesEnum.CSAR);
+ assertEquals(1, uploadFileResponse.getErrors().size());
+ assertTrue( uploadFileResponse.getErrors().values().stream()
+ .filter(getListPredicate(Messages.CSAR_FILES_NOT_ALLOWED
+ .getErrorMessage().substring(0, 7))).findAny().isPresent());
+ }
+ }
+
+ private Predicate<List<ErrorMessage>> getListPredicate(String substring) {
+ return error -> isEquals(substring, error);
+ }
+
+ private boolean isEquals(String substring, List<ErrorMessage> error) {
+ return error.iterator().next().getMessage().contains(substring);
+ }
+
+ @Test
+ public void testFail2UploadFile() throws Exception {
+ VspDetails vspDetails = new VspDetails("dummyId", new Version(1, 0));
+ doReturn(vspDetails).when(vspInfoDaoMock).get(any(VspDetails.class));
+
+ try (InputStream is = getClass().getResourceAsStream("/vspmanager.csar/SDCmockFail2.csar")) {
+ UploadFileResponse uploadFileResponse = candidateManager.upload(id001, activeVersion002, is, USER1,
+ "csar", "SDCmockFail2");
+ assertEquals(uploadFileResponse.getOnboardingType(), OnboardingTypesEnum.CSAR);
+ assertEquals(1, uploadFileResponse.getErrors().size());
+ assertTrue( uploadFileResponse.getErrors().values().stream()
+ .filter(getListPredicate(Messages.CSAR_FILE_NOT_FOUND
+ .getErrorMessage().substring(0,7))).findAny().isPresent());
+ }
+ }
+ @Test
+ public void testFail3UploadFile() throws Exception {
+ VspDetails vspDetails = new VspDetails("dummyId", new Version(1, 0));
+ doReturn(vspDetails).when(vspInfoDaoMock).get(any(VspDetails.class));
+
+ try (InputStream is = getClass().getResourceAsStream("/vspmanager.csar/SDCmockFail3.csar")) {
+ UploadFileResponse uploadFileResponse = candidateManager.upload(id001, activeVersion002, is, USER1,
+ "csar", "SDCmockFail3");
+ assertEquals(uploadFileResponse.getOnboardingType(), OnboardingTypesEnum.CSAR);
+ assertEquals(1, uploadFileResponse.getErrors().size());
+ }
+ }
+
+ @Test
+ public void testUploadFileIsNotZip() throws Exception {
+ VspDetails vspDetails = new VspDetails("dummyId", new Version(1, 0));
+ doReturn(vspDetails).when(vspInfoDaoMock).get(any(VspDetails.class));
+
+ try (InputStream is = new ByteArrayInputStream( "Thia is not a zip file".getBytes() );) {
+ UploadFileResponse uploadFileResponse = candidateManager.upload(id001, activeVersion002, is, USER1,
+ "csar", "file");
+ assertEquals(uploadFileResponse.getOnboardingType(), OnboardingTypesEnum.CSAR);
+ assertFalse(uploadFileResponse.getErrors().isEmpty());
+ assertTrue( uploadFileResponse.getErrors().values().stream()
+ .filter(getListPredicate(Messages.CSAR_FILE_NOT_FOUND
+ .getErrorMessage().substring(0,7))).findAny().isPresent());
+ }
+ }
+ @Test
+ public void testUploadFileIsEmpty() throws Exception {
+ VspDetails vspDetails = new VspDetails("dummyId", new Version(1, 0));
+ doReturn(vspDetails).when(vspInfoDaoMock).get(any(VspDetails.class));
+
+ try (InputStream is = new ByteArrayInputStream( new byte[]{} )) {
+ UploadFileResponse uploadFileResponse = candidateManager.upload(id001,
+ activeVersion002, is, USER1, "csar", "file");
+ assertEquals(uploadFileResponse.getOnboardingType(), OnboardingTypesEnum.CSAR);
+ assertEquals(1, uploadFileResponse.getErrors().size());
+ }
+ }
+
+ @Test
+ public void testMFError() throws Exception {
+ VspDetails vspDetails = new VspDetails("dummyId", new Version(1, 0));
+ doReturn(vspDetails).when(vspInfoDaoMock).get(any(VspDetails.class));
+
+ try (InputStream is = getClass().getResourceAsStream("/vspmanager.csar/SDCmockBrokenMF.csar")) {
+ UploadFileResponse uploadFileResponse = candidateManager.upload(id001, activeVersion002, is, USER1, "csar", "SDCmockBrokenMF");
+ assertEquals(uploadFileResponse.getOnboardingType(), OnboardingTypesEnum.CSAR);
+ assertEquals(1, uploadFileResponse.getErrors().size());
+ assertTrue( uploadFileResponse.getErrors()
+ .values().stream()
+ .filter(getListPredicate(Messages.MANIFEST_NO_METADATA.getErrorMessage())).findAny().isPresent());
+
+ }
+ }
+
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmock.csar b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmock.csar
new file mode 100644
index 0000000000..f69efd2bb8
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmock.csar
Binary files differ
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockBrokenMF.csar b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockBrokenMF.csar
new file mode 100644
index 0000000000..02593a1d2f
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockBrokenMF.csar
Binary files differ
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail1.csar b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail1.csar
new file mode 100644
index 0000000000..5e3ee6f387
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail1.csar
Binary files differ
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail2.csar b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail2.csar
new file mode 100644
index 0000000000..4874578ad9
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail2.csar
Binary files differ
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail3.csar b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail3.csar
new file mode 100644
index 0000000000..c009a042e4
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/SDCmockFail3.csar
Binary files differ
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca1.mf b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca1.mf
new file mode 100644
index 0000000000..f28014e2d6
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca1.mf
@@ -0,0 +1,11 @@
+
+
+source: MainServiceTemplate.yaml
+
+source: Definitions/GlobalSubstitutionTypesServiceTemplate.yaml
+
+source: Artifacts/install.sh
+
+source: Artifacts/create_stack.sh
+
+source: Licenses/license.xml
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca2.mf b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca2.mf
new file mode 100644
index 0000000000..95f7a41d68
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca2.mf
@@ -0,0 +1,18 @@
+metadata:
+ vnf_product_name: Mock
+ vnf_provider_id: ZTE
+
+source: MainServiceTemplate.yaml
+
+ vnf_package_version: 1.0
+ vnf_release_data_time: 2017.01.01T10:00+03:00
+
+
+
+source: Definitions/GlobalSubstitutionTypesServiceTemplate.yaml
+
+source: Artifacts/install.sh
+
+source: Artifacts/create_stack.sh
+
+source: Licenses/license.xml
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca3.mf b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca3.mf
new file mode 100644
index 0000000000..64e9445f7f
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca3.mf
@@ -0,0 +1,7 @@
+metadata:
+ vnf_product_name: Mock
+ vnf_provider_id: ZTE
+ vnf_package_version: 1.0
+ vnf_release_data_time: 2017.01.01T10:00+03:00
+
+
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca4.mf b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca4.mf
new file mode 100644
index 0000000000..a563ddd581
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/InvalidTosca4.mf
@@ -0,0 +1,12 @@
+metadata:
+
+
+source: MainServiceTemplate.yaml
+
+source: Definitions/GlobalSubstitutionTypesServiceTemplate.yaml
+
+source: Artifacts/install.sh
+
+source: Artifacts/create_stack.sh
+
+source: Licenses/license.xml
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/ValidTosca.mf b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/ValidTosca.mf
new file mode 100644
index 0000000000..88c67517ce
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/ValidTosca.mf
@@ -0,0 +1,15 @@
+metadata:
+ vnf_product_name: Mock
+ vnf_provider_id: ZTE
+ vnf_package_version: 1.0
+ vnf_release_data_time: 2017.01.01T10:00+03:00
+
+source: MainServiceTemplate.yaml
+
+source: Definitions/GlobalSubstitutionTypesServiceTemplate.yaml
+
+source: Artifacts/install.sh
+
+source: Artifacts/create_stack.sh
+
+source: Licenses/license.xml
diff --git a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java
index 9fff4bd749..8bcb0a5ffe 100644
--- a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java
+++ b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java
@@ -28,6 +28,14 @@ public enum Messages {
"functionalities"),
INVALID_ZIP_FILE("Invalid zip file"),
+ INVALID_CSAR_FILE("Invalid csar file"),
+ CSAR_FILE_NOT_FOUND("Each CSAR file must contain %s file."),
+ CSAR_DIRECTORIES_NOT_ALLOWED("Directory : %s , is not allowed."),
+ CSAR_FILES_NOT_ALLOWED("File : %s , are not allowed."),
+ MANIFEST_INVALID_LINE("Manifest contains invalid line : %s"),
+ MANIFEST_NO_METADATA("Manifest must contain metadata"),
+ MANIFEST_NO_SOURCES("Manifest must contain source"),
+ MANIFEST_PARSER_INTERNAL("Invalid manifest file"),
FAILED_TO_TRANSLATE_ZIP_FILE("Failed to translate zip file"),
ZIP_NOT_EXIST("Zip file doesn't exist"),
@@ -45,7 +53,7 @@ public enum Messages {
NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST("no zip file was uploaded or zip file doesn't exist"),
MAPPING_OBJECTS_FAILURE("Failed to map object %s to %s. Exception message: %s"),
MORE_THEN_ONE_VOL_FOR_HEAT("heat contains more then one vol. selecting only first vol"),
- ZIP_CONTENT_MAP("failed to load zip content"),
+ FILE_CONTENT_MAP("failed to load %s content"),
CREATE_MANIFEST_FROM_ZIP("cannot create manifest from the attached zip file"),
CANDIDATE_PROCESS_FAILED("Candidate zip file process failed"),
FOUND_UNASSIGNED_FILES("cannot process zip since it has unassigned files"),
@@ -66,7 +74,9 @@ public enum Messages {
INVALID_MANIFEST_FILE("invalid manifest file"),
INVALID_FILE_TYPE("Missing or Unknown file type in Manifest"),
ENV_NOT_ASSOCIATED_TO_HEAT("ENV file must be associated to a HEAT file"),
-
+ CSAR_MANIFEST_FILE_NOT_EXIST("CSAR manifest file does not exist"),
+ CSAR_FAILED_TO_READ("CSAR file is not readable"),
+ TOSCA_PARSING_FAILURE("Invalid tosca file. Error code : %s, Error message : %s/"),
/* content errors*/
INVALID_YAML_FORMAT("Invalid YAML format - %s"),
INVALID_YAML_FORMAT_REASON("Invalid YAML format Problem - [%s]"),
diff --git a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/utils/CommonUtil.java b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/utils/CommonUtil.java
index 07322c626b..1c5293004d 100644
--- a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/utils/CommonUtil.java
+++ b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/utils/CommonUtil.java
@@ -22,8 +22,11 @@ package org.openecomp.sdc.common.utils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.common.errors.ErrorCategory;
import org.openecomp.sdc.common.errors.ErrorCode;
@@ -45,29 +48,42 @@ import java.util.zip.ZipInputStream;
public class CommonUtil {
- public static FileContentHandler validateAndUploadFileContent(byte[] uploadedFileData)
+ public static FileContentHandler validateAndUploadFileContent(OnboardingTypesEnum type,
+ byte[] uploadedFileData)
throws IOException {
- return getFileContentMapFromOrchestrationCandidateZipAndValidateNoFolders(uploadedFileData);
+ return getFileContentMapFromOrchestrationCandidateZipAndValidateNoFolders(type, uploadedFileData);
}
/**
* Gets files out of the zip AND validates zip is flat (no folders)
*
+ *
+ * @param type
* @param uploadFileData zip file
* @return FileContentHandler if input is valid and has no folders
*/
private static FileContentHandler getFileContentMapFromOrchestrationCandidateZipAndValidateNoFolders(
- byte[] uploadFileData)
+ OnboardingTypesEnum type, byte[] uploadFileData)
throws IOException {
+ Pair<FileContentHandler,List<String> > pair = getFileContentMapFromOrchestrationCandidateZip(uploadFileData);
+
+ if(type.equals(OnboardingTypesEnum.ZIP)) {
+ validateNoFolders(pair.getRight());
+ }
+
+ return pair.getLeft();
+ }
+
+ public static Pair<FileContentHandler,List<String> > getFileContentMapFromOrchestrationCandidateZip(
+ byte[] uploadFileData)
+ throws IOException {
ZipEntry zipEntry;
List<String> folderList = new ArrayList<>();
FileContentHandler mapFileContent = new FileContentHandler();
- try {
- ZipInputStream inputZipStream;
-
+ try ( ByteArrayInputStream in = new ByteArrayInputStream(uploadFileData);
+ ZipInputStream inputZipStream = new ZipInputStream(in)){
byte[] fileByteContent;
String currentEntryName;
- inputZipStream = new ZipInputStream(new ByteArrayInputStream(uploadFileData));
while ((zipEntry = inputZipStream.getNextEntry()) != null) {
currentEntryName = zipEntry.getName();
@@ -77,7 +93,8 @@ public class CommonUtil {
int index = lastIndexFileSeparatorIndex(currentEntryName);
if (index != -1) { //todo ?
folderList.add(currentEntryName);
- } else {
+ }
+ if(isFile(currentEntryName)) {
mapFileContent.addFile(currentEntryName, fileByteContent);
}
}
@@ -86,9 +103,11 @@ public class CommonUtil {
throw new IOException(exception);
}
- validateNoFolders(folderList);
+ return new ImmutablePair<>(mapFileContent,folderList);
+ }
- return mapFileContent;
+ private static boolean isFile(String currentEntryName) {
+ return !(currentEntryName.endsWith("\\") || currentEntryName.endsWith("/"));
}
private static void validateNoFolders(List<String> folderList) {
diff --git a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/utils/SdcCommon.java b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/utils/SdcCommon.java
index 156a86c841..24da8363c1 100644
--- a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/utils/SdcCommon.java
+++ b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/utils/SdcCommon.java
@@ -23,6 +23,7 @@ package org.openecomp.sdc.common.utils;
public class SdcCommon {
public static final String MANIFEST_NAME = "MANIFEST.json";
+ public static final String CSAR_MANIFEST_NAME = "MainServiceTemplate.mf";
public static final String UPLOAD_FILE = "uploadFile";
public static final String PROCESS_FILE = "Process File";
public static final String ILLEGAL_MANIFEST = "Illegal manifest";
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/src/main/java/org/openecomp/core/factory/FactoriesConfigImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/src/main/java/org/openecomp/core/factory/FactoriesConfigImpl.java
index 173f9b15b1..b9d03f4d1a 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/src/main/java/org/openecomp/core/factory/FactoriesConfigImpl.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/src/main/java/org/openecomp/core/factory/FactoriesConfigImpl.java
@@ -25,7 +25,9 @@ import org.openecomp.core.factory.api.FactoriesConfiguration;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.core.utilities.json.JsonUtil;
+import java.io.IOException;
import java.io.InputStream;
+import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -50,12 +52,16 @@ public final class FactoriesConfigImpl implements FactoriesConfiguration {
}
private void init() {
- List<InputStream> factoryConfigIsList = FileUtils.getFileInputStreams(FACTORY_CONFIG_FILE_NAME);
- for (InputStream factoryConfigIs : factoryConfigIsList) {
- factoryMap.putAll(JsonUtil.json2Object(factoryConfigIs, Map.class));
- }
- }
+ List<URL> factoryConfigUrlList = FileUtils.getAllLocations(FACTORY_CONFIG_FILE_NAME);
+ for (URL factoryConfigUrl : factoryConfigUrlList) {
+ try (InputStream stream = factoryConfigUrl.openStream()) {
+ factoryMap.putAll(JsonUtil.json2Object(stream, Map.class));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/util/UniqueValueUtil.java b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/util/UniqueValueUtil.java
index d2dee5e512..dce34a1c96 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/util/UniqueValueUtil.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/util/UniqueValueUtil.java
@@ -27,7 +27,6 @@ import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.common.errors.ErrorCategory;
import org.openecomp.sdc.common.errors.ErrorCode;
-import org.openecomp.sdc.common.utils.CommonUtil;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
import java.util.Optional;
@@ -95,9 +94,10 @@ public class UniqueValueUtil {
mdcDataDebugMessage.debugEntryMessage(null, null);
- if ((newValue != null && oldValue != null
- && !newValue.toLowerCase().equals(oldValue.toLowerCase()))
- || newValue == null || oldValue == null) {
+ boolean nonEqual = (newValue != null) && (oldValue != null)
+ && !newValue.toLowerCase().equals(oldValue.toLowerCase());
+
+ if (nonEqual || newValue == null || oldValue == null) {
createUniqueValue(type, CommonMethods.concat(uniqueContext, new String[]{newValue}));
deleteUniqueValue(type, CommonMethods.concat(uniqueContext, new String[]{oldValue}));
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/util/CassandraUtils.java b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/util/CassandraUtils.java
index 2a88d0e521..7a70900873 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/util/CassandraUtils.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/util/CassandraUtils.java
@@ -23,7 +23,6 @@ package org.openecomp.core.nosqldb.util;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.core.utilities.json.JsonUtil;
-import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
@@ -49,10 +48,12 @@ public class CassandraUtils {
* @return the statement
*/
public static String getStatement(String statementName) {
+
if (statementMap.size() == 0) {
- InputStream statementJson = FileUtils.getFileInputStream(CASSANDRA_STATEMENT_DEFINITION_FILE);
- statementMap = JsonUtil.json2Object(statementJson, Map.class);
+ statementMap = FileUtils.readViaInputStream(CASSANDRA_STATEMENT_DEFINITION_FILE,
+ stream -> JsonUtil.json2Object(stream, Map.class));
}
+
return statementMap.get(statementName);
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileUtils.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileUtils.java
index 87ce8d37c3..0fb587cc68 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileUtils.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileUtils.java
@@ -20,6 +20,7 @@
package org.openecomp.core.utilities.file;
+import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.openecomp.core.utilities.json.JsonUtil;
import org.openecomp.sdc.tosca.services.YamlUtil;
@@ -28,9 +29,12 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
-import java.util.ArrayList;
+import java.util.Collections;
import java.util.Enumeration;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Objects;
+import java.util.function.Function;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -40,38 +44,29 @@ import java.util.zip.ZipInputStream;
public class FileUtils {
/**
- * Gets file input stream.
+ * Allows to consume an input stream open against a resource with a given file name.
*
* @param fileName the file name
- * @return the file input stream
+ * @param function logic to be applied to the input stream
*/
- public static InputStream getFileInputStream(String fileName) {
- URL urlFile = FileUtils.class.getClassLoader().getResource(fileName);
- InputStream is;
- try {
- assert urlFile != null;
- is = urlFile.openStream();
- } catch (IOException exception) {
- throw new RuntimeException(exception);
- }
- return is;
+ public static <T> T readViaInputStream(String fileName, Function<InputStream, T> function) {
+ return readViaInputStream(FileUtils.class.getClassLoader().getResource(fileName), function);
}
/**
- * Gets file input stream.
+ * Allows to consume an input stream open against a resource with a given URL.
*
* @param urlFile the url file
- * @return the file input stream
+ * @param function logic to be applied to the input stream
*/
- public static InputStream getFileInputStream(URL urlFile) {
- InputStream is;
- try {
- assert urlFile != null;
- is = urlFile.openStream();
+ public static <T> T readViaInputStream(URL urlFile, Function<InputStream, T> function) {
+
+ Objects.requireNonNull(urlFile);
+ try (InputStream is = urlFile.openStream()) {
+ return function.apply(is);
} catch (IOException exception) {
throw new RuntimeException(exception);
}
- return is;
}
/**
@@ -80,24 +75,23 @@ public class FileUtils {
* @param fileName the file name
* @return the file input streams
*/
- public static List<InputStream> getFileInputStreams(String fileName) {
+ public static List<URL> getAllLocations(String fileName) {
+
+ List<URL> urls = new LinkedList<>();
Enumeration<URL> urlFiles;
- List<InputStream> streams = new ArrayList<>();
- InputStream is;
- URL url;
+
try {
urlFiles = FileUtils.class.getClassLoader().getResources(fileName);
while (urlFiles.hasMoreElements()) {
- url = urlFiles.nextElement();
- is = url.openStream();
- streams.add(is);
+ urls.add(urlFiles.nextElement());
}
} catch (IOException exception) {
throw new RuntimeException(exception);
}
- return streams;
+
+ return urls.isEmpty() ? Collections.emptyList() : Collections.unmodifiableList(urls);
}
/**
@@ -202,6 +196,19 @@ public class FileUtils {
return fileName.substring(0, fileName.lastIndexOf("."));
}
+ public static String getFileExtension(String filename) {
+ return FilenameUtils.getExtension(filename);
+ }
+
+ public static String getNetworkPackageName(String filename){
+ String[] split = filename.split("\\.");
+ String name = null;
+ if (split != null && split.length > 1){
+ name = split[0];
+ }
+ return name;
+ }
+
/**
* Gets file content map from zip.
*
@@ -210,25 +217,22 @@ public class FileUtils {
* @throws IOException the io exception
*/
public static FileContentHandler getFileContentMapFromZip(byte[] zipData) throws IOException {
- ZipEntry zipEntry;
- FileContentHandler mapFileContent = new FileContentHandler();
- try {
- ZipInputStream inputZipStream;
- byte[] fileByteContent;
- String currentEntryName;
- inputZipStream = new ZipInputStream(new ByteArrayInputStream(zipData));
+ try (ZipInputStream inputZipStream = new ZipInputStream(new ByteArrayInputStream(zipData))) {
+
+ FileContentHandler mapFileContent = new FileContentHandler();
+
+ ZipEntry zipEntry;
while ((zipEntry = inputZipStream.getNextEntry()) != null) {
- currentEntryName = zipEntry.getName();
- fileByteContent = FileUtils.toByteArray(inputZipStream);
- mapFileContent.addFile(currentEntryName, fileByteContent);
+ mapFileContent.addFile(zipEntry.getName(), FileUtils.toByteArray(inputZipStream));
}
+ return mapFileContent;
+
} catch (RuntimeException exception) {
throw new IOException(exception);
}
- return mapFileContent;
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/orchestration/OnboardingTypesEnum.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/orchestration/OnboardingTypesEnum.java
new file mode 100644
index 0000000000..04e64c33a9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/orchestration/OnboardingTypesEnum.java
@@ -0,0 +1,32 @@
+package org.openecomp.core.utilities.orchestration;
+
+import java.util.Optional;
+
+import static java.util.Arrays.asList;
+public enum OnboardingTypesEnum {
+ CSAR("csar"), ZIP("zip"), NONE("none");
+ private String type;
+
+ OnboardingTypesEnum(String type) {
+ this.type = type;
+ }
+
+ @Override
+ public String toString() {
+ return type;
+ }
+
+ public static final OnboardingTypesEnum getOnboardingTypesEnum(final String inStr) {
+ if (inStr == null) {
+ return null;
+ }
+ Optional<OnboardingTypesEnum> onboardingTypesOptional = asList(OnboardingTypesEnum.values()).stream()
+ .filter(onboardingTypesEnum -> onboardingTypesEnum.toString().equals(inStr)).findAny();
+ if( onboardingTypesOptional.isPresent()){
+ return onboardingTypesOptional.get();
+ }else {
+ return null;
+ }
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonSchemaDataGeneratorTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonSchemaDataGeneratorTest.java
index ba34d07034..9b21f632cc 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonSchemaDataGeneratorTest.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonSchemaDataGeneratorTest.java
@@ -28,14 +28,17 @@ import org.testng.annotations.Test;
public class JsonSchemaDataGeneratorTest {
- public static final String SCHEMA_WITHOUT_DEFAULTS = new String(
- FileUtils.toByteArray(FileUtils.getFileInputStream("jsonUtil/json_schema/aSchema.json")));
- public static final String SCHEMA_WITH_REFS_AND_DEFAULTS = new String(FileUtils.toByteArray(
- FileUtils.getFileInputStream("jsonUtil/json_schema/schemaWithRefsAndDefaults.json")));
- public static final String SCHEMA_WITH_INVALID_DEFAULT = new String(FileUtils.toByteArray(
- FileUtils.getFileInputStream("jsonUtil/json_schema/schemaWithInvalidDefault.json")));
- public static final String SCHEMA_NIC = new String(
- FileUtils.toByteArray(FileUtils.getFileInputStream("jsonUtil/json_schema/nicSchema.json")));
+ public static final String SCHEMA_WITHOUT_DEFAULTS =
+ readFromFile("jsonUtil/json_schema/aSchema.json");
+
+ public static final String SCHEMA_WITH_REFS_AND_DEFAULTS =
+ readFromFile("jsonUtil/json_schema/schemaWithRefsAndDefaults.json");
+
+ public static final String SCHEMA_WITH_INVALID_DEFAULT =
+ readFromFile("jsonUtil/json_schema/schemaWithInvalidDefault.json");
+
+ public static final String SCHEMA_NIC =
+ readFromFile("jsonUtil/json_schema/nicSchema.json");
@Test
public void testSchemaWithoutDefaults() {
@@ -67,4 +70,8 @@ public class JsonSchemaDataGeneratorTest {
JSONObject dataJson = new JSONObject(data);
Assert.assertTrue(expectedData.similar(dataJson));
}
+
+ private static String readFromFile(String filename) {
+ return FileUtils.readViaInputStream(filename, stream -> new String(FileUtils.toByteArray(stream)));
+ }
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java
index 6b8805797a..d89019baec 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java
@@ -31,10 +31,14 @@ public class JsonUtilTest {
@Test
public void testValidJsonValidate() throws Exception {
- String json =
- new String(FileUtils.toByteArray(FileUtils.getFileInputStream("jsonUtil/json/a.json")));
- String jsonSchema = new String(
- FileUtils.toByteArray(FileUtils.getFileInputStream("jsonUtil/json_schema/aSchema.json")));
+
+
+
+ String json = FileUtils.readViaInputStream("jsonUtil/json/a.json",
+ stream -> new String(FileUtils.toByteArray(stream)));
+
+ String jsonSchema = FileUtils.readViaInputStream("jsonUtil/json_schema/aSchema.json",
+ stream -> new String(FileUtils.toByteArray(stream)));
List<String> validationErrors = JsonUtil.validate(json, jsonSchema);
Assert.assertNull(validationErrors);
@@ -42,10 +46,11 @@ public class JsonUtilTest {
@Test
public void testInValidJsonValidate() throws Exception {
- String json = new String(
- FileUtils.toByteArray(FileUtils.getFileInputStream("jsonUtil/json/a_invalid.json")));
- String jsonSchema = new String(
- FileUtils.toByteArray(FileUtils.getFileInputStream("jsonUtil/json_schema/aSchema.json")));
+
+ String json = FileUtils.readViaInputStream("jsonUtil/json/a_invalid.json",
+ stream -> new String(FileUtils.toByteArray(stream)));
+ String jsonSchema = FileUtils.readViaInputStream("jsonUtil/json_schema/aSchema.json",
+ stream -> new String(FileUtils.toByteArray(stream)));
List<String> validationErrors = JsonUtil.validate(json, jsonSchema);
Assert.assertNotNull(validationErrors);
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerImpl.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerImpl.java
index 0d4cb9c0ba..0f2c0e7ee1 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerImpl.java
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerImpl.java
@@ -20,20 +20,19 @@
package org.openecomp.sdc.healing.impl;
-import org.openecomp.sdc.datatypes.error.ErrorLevel;
-import org.openecomp.sdc.healing.interfaces.Healer;
import org.openecomp.core.utilities.file.FileUtils;
-import org.openecomp.sdc.healing.types.HealCode;
import org.openecomp.core.utilities.json.JsonUtil;
-import org.openecomp.sdc.healing.api.HealingManager;
import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.healing.api.HealingManager;
+import org.openecomp.sdc.healing.interfaces.Healer;
+import org.openecomp.sdc.healing.types.HealCode;
import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
import org.openecomp.sdc.logging.types.LoggerConstants;
import org.openecomp.sdc.logging.types.LoggerErrorCode;
import org.openecomp.sdc.logging.types.LoggerErrorDescription;
import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
-import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.util.Map;
@@ -77,8 +76,7 @@ public class HealingManagerImpl implements HealingManager {
}
private static Map<String, String> initHealers() {
- InputStream healingConfigurationJson = FileUtils.getFileInputStream(HEALING_CONF_FILE);
- return JsonUtil.json2Object(healingConfigurationJson, Map.class);
+ return FileUtils.readViaInputStream(HEALING_CONF_FILE, stream -> JsonUtil.json2Object(stream, Map.class));
}
private Healer getHealerImplInstance(String implClassName)
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml
index 618922c2af..03ee98dd4e 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml
@@ -33,6 +33,13 @@
<artifactId>openecomp-sdc-vendor-license-api</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
</project>
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
index bdb7bc3a93..9800d02ba6 100644
--- 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
@@ -27,6 +27,7 @@ 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.common.utils.SdcCommon;
import org.openecomp.sdc.healing.interfaces.Healer;
@@ -49,7 +50,6 @@ 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.DeploymentFlavorEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
@@ -300,7 +300,8 @@ public class CompositionDataHealer implements Healer {
FileContentHandler fileContentHandler;
try {
fileContentHandler =
- CommonUtil.validateAndUploadFileContent(uploadData.getContentData().array());
+ CommonUtil.validateAndUploadFileContent(
+ OnboardingTypesEnum.ZIP, uploadData.getContentData().array());
return HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler);
} catch (Exception 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
index e0b7adb6d3..0d484440cf 100644
--- 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
@@ -22,6 +22,7 @@ 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.common.utils.SdcCommon;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
@@ -94,7 +95,7 @@ public class FileDataStructureHealer implements Healer {
byte[] byteContentData = uploadData.getContentData().array();
FileContentHandler fileContentHandler;
try{
- fileContentHandler = CommonUtil.validateAndUploadFileContent(byteContentData);
+ fileContentHandler = CommonUtil.validateAndUploadFileContent(OnboardingTypesEnum.ZIP, byteContentData);
Map<String, List<ErrorMessage>> errors = new HashMap<>();
OrchestrationTemplateCandidateData candidateDataEntity =
new CandidateEntityBuilder(candidateService)
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
index d5ccd36c95..44b6062e89 100644
--- 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
@@ -8,6 +8,7 @@ import org.openecomp.core.model.dao.ServiceTemplateDaoInter;
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.common.utils.SdcCommon;
import org.openecomp.sdc.healing.interfaces.Healer;
@@ -53,7 +54,7 @@ public class HeatToToscaTranslationHealer implements Healer {
FileContentHandler fileContentHandler;
TranslatorOutput translatorOutput;
try {
- fileContentHandler = CommonUtil.validateAndUploadFileContent(uploadData
+ fileContentHandler = CommonUtil.validateAndUploadFileContent(OnboardingTypesEnum.ZIP, uploadData
.getContentData().array());
translatorOutput =
HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler);
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
index 5d6050a7f0..0b06fb1c83 100644
--- 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
@@ -1,11 +1,10 @@
package org.openecomp.sdc.healing.healers;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.sdc.common.utils.SdcCommon;
import org.openecomp.sdc.healing.interfaces.Healer;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
@@ -15,15 +14,18 @@ import java.util.Map;
import java.util.Objects;
public class VspOnboardingMethodHealer implements Healer {
- /*private static final VendorSoftwareProductDao vendorSoftwareProductDao =
- VendorSoftwareProductDaoFactory.getInstance().createInterface();*/
- private static final VendorSoftwareProductInfoDao vendorSoftwareProductInfoDao =
+ private static VendorSoftwareProductInfoDao vendorSoftwareProductInfoDao =
VendorSoftwareProductInfoDaoFactory.getInstance().createInterface();
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
public VspOnboardingMethodHealer(){
+ }
+ public VspOnboardingMethodHealer( VendorSoftwareProductInfoDao inVendorSoftwareProductInfoDao){
+ vendorSoftwareProductInfoDao = inVendorSoftwareProductInfoDao;
}
+
+
@Override
public Object heal(Map<String, Object> healingParams) throws Exception {
mdcDataDebugMessage.debugEntryMessage(null, null);
@@ -33,14 +35,22 @@ public class VspOnboardingMethodHealer implements Healer {
Version version = (Version) healingParams.get(SdcCommon.VERSION);
VspDetails vendorSoftwareProductInfo =
vendorSoftwareProductInfoDao.get(new VspDetails(vspId, version));
- vendorSoftwareProductInfo.getOnboardingMethod();
+ String onboardingValue = vendorSoftwareProductInfo.getOnboardingMethod();
- if(Objects.isNull(vendorSoftwareProductInfo.getOnboardingMethod())) {
- onboardingMethod="HEAT";
- vendorSoftwareProductInfo.setOnboardingMethod(onboardingMethod);
- vendorSoftwareProductInfoDao.update(vendorSoftwareProductInfo);
- //vendorSoftwareProductDao.updateVendorSoftwareProductInfo(vendorSoftwareProductInfo);
+ if(Objects.isNull(onboardingValue)) {
+ onboardingMethod="NetworkPackage";
+
+ updateVSPInfo(OnboardingTypesEnum.ZIP.toString(), onboardingMethod, vendorSoftwareProductInfo);
+ } else if (onboardingValue.equals("HEAT")){
+ onboardingMethod="NetworkPackage";
+ updateVSPInfo(OnboardingTypesEnum.ZIP.toString(),onboardingMethod, vendorSoftwareProductInfo);
}
return onboardingMethod;
}
+
+ private void updateVSPInfo(String onboardingOrigin, String onboardingMethod, VspDetails vendorSoftwareProductInfo) {
+ vendorSoftwareProductInfo.setOnboardingMethod(onboardingMethod);
+ vendorSoftwareProductInfo.setOnboardingOrigin(onboardingOrigin);
+ vendorSoftwareProductInfoDao.update(vendorSoftwareProductInfo);
+ }
}
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
new file mode 100644
index 0000000000..b732cb03b6
--- /dev/null
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/test/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealerTest.java
@@ -0,0 +1,70 @@
+package org.openecomp.sdc.healing.healers;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+
+public class VspOnboardingMethodHealerTest{
+
+ @Mock
+ private VendorSoftwareProductInfoDao vendorSoftwareProductInfoDao;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(VspOnboardingMethodHealerTest.this);
+ }
+
+ @Test
+ public void checkHealingWithNullOnboarding() throws Exception{
+ VspOnboardingMethodHealer vspOnboardingMethodHealer = new VspOnboardingMethodHealer(vendorSoftwareProductInfoDao);
+ Map<String,Object> params = new HashMap<>();
+ params.put(SdcCommon.VSP_ID,"1");
+ params.put(SdcCommon.VERSION, new Version(1,1));
+ VspDetails vspDetails = new VspDetails();
+ vspDetails.setOnboardingMethod(null);
+ Mockito.when(vendorSoftwareProductInfoDao.get(any())).thenReturn(vspDetails);
+ vspOnboardingMethodHealer.heal(params);
+ assertEquals(vspDetails.getOnboardingMethod(),"NetworkPackage");
+ assertEquals(vspDetails.getOnboardingOrigin(),"zip");
+ }
+
+ @Test
+ public void checkHealingWithHEATOnboarding() throws Exception{
+ VspOnboardingMethodHealer vspOnboardingMethodHealer = new VspOnboardingMethodHealer(vendorSoftwareProductInfoDao);
+ Map<String,Object> params = new HashMap<>();
+ params.put(SdcCommon.VSP_ID,"1");
+ params.put(SdcCommon.VERSION, new Version(1,1));
+ VspDetails vspDetails = new VspDetails();
+ vspDetails.setOnboardingMethod("HEAT");
+ Mockito.when(vendorSoftwareProductInfoDao.get(any())).thenReturn(vspDetails);
+ vspOnboardingMethodHealer.heal(params);
+ assertEquals(vspDetails.getOnboardingMethod(),"NetworkPackage");
+ assertEquals(vspDetails.getOnboardingOrigin(),"zip");
+ }
+
+ @Test
+ public void checkHealingWithManualOnboarding() throws Exception{
+ VspOnboardingMethodHealer vspOnboardingMethodHealer = new VspOnboardingMethodHealer(vendorSoftwareProductInfoDao);
+ Map<String,Object> params = new HashMap<>();
+ params.put(SdcCommon.VSP_ID,"1");
+ params.put(SdcCommon.VERSION, new Version(1,1));
+ VspDetails vspDetails = new VspDetails();
+ vspDetails.setOnboardingMethod("Manual");
+ Mockito.when(vendorSoftwareProductInfoDao.get(any())).thenReturn(vspDetails);
+ vspOnboardingMethodHealer.heal(params);
+ assertEquals(vspDetails.getOnboardingMethod(),"Manual");
+ assertEquals(vspDetails.getOnboardingOrigin(),null);
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/pom.xml b/openecomp-be/lib/openecomp-heat-lib/pom.xml
index 55ab0623b4..0a4e14f417 100644
--- a/openecomp-be/lib/openecomp-heat-lib/pom.xml
+++ b/openecomp-be/lib/openecomp-heat-lib/pom.xml
@@ -16,6 +16,18 @@
<dependencies>
<dependency>
<groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-core</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
<artifactId>openecomp-tosca-datatype</artifactId>
<version>${openecomp.sdc.common.version}</version>
</dependency>
@@ -52,4 +64,19 @@
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${mvn.surefire.version}</version>
+ <configuration>
+ <skipTests>true</skipTests>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
</project>
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManager.java b/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManager.java
new file mode 100644
index 0000000000..517c690194
--- /dev/null
+++ b/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManager.java
@@ -0,0 +1,79 @@
+package org.openecomp.sdc.heat.services.tree;
+
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.heat.datatypes.structure.Artifact;
+import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+public class ToscaTreeManager {
+
+ private static Logger logger = (Logger) LoggerFactory.getLogger(ToscaTreeManager.class);
+
+ private FileContentHandler csarContentMap = new FileContentHandler();
+ private byte[] manifest;
+ private HeatStructureTree tree = new HeatStructureTree();
+ private Map<String, Artifact> artifactRef = new HashMap<>();
+ private Map<String, HeatStructureTree> fileTreeRef = new HashMap<>();
+
+
+ public void addFile(String fileName, byte[] content) {
+ if (fileName.equals(SdcCommon.CSAR_MANIFEST_NAME)) {
+ manifest = content;
+
+ } else {
+ csarContentMap.addFile(fileName, content);
+ }
+ }
+
+ public void createTree(){
+ if (manifest == null) {
+ logger.error("Missing manifest file in the zip.");
+ return;
+ }
+
+ for(Map.Entry<String, byte[]> fileEntry : csarContentMap.getFiles().entrySet()){
+ String[] splitFilename = getFullFileNameAsArray(fileEntry.getKey());
+ addFileToTree(splitFilename, 0, tree);
+ }
+
+
+ }
+
+ private void addFileToTree(String[] splitFilename, int startIndex, HeatStructureTree parent){
+ fileTreeRef.putIfAbsent(splitFilename[startIndex], new HeatStructureTree());
+ HeatStructureTree heatStructureTree = fileTreeRef.get(splitFilename[startIndex]);
+ heatStructureTree.setFileName(splitFilename[startIndex]);
+ if(startIndex < splitFilename.length - 1){
+ addFileToTree(splitFilename, startIndex + 1, heatStructureTree);
+ }
+ parent.addHeatStructureTreeToNestedHeatList(heatStructureTree);
+ }
+
+ public void addErrors(Map<String, List<ErrorMessage>> validationErrors){
+ validationErrors.entrySet().stream().filter(entry -> {
+ return fileTreeRef.get(entry.getKey()) != null;
+ }).forEach(entry -> entry.getValue().stream().forEach(error ->
+ fileTreeRef.get(entry.getKey()).addErrorToErrorsList(error)));
+ }
+
+ private String[] getFullFileNameAsArray(String filename){
+ if(filename.contains("/")){
+ return filename.split("/");
+ }
+
+ return filename.split(Pattern.quote(File.separator));
+ }
+
+ public HeatStructureTree getTree(){
+ return tree;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/messages/AuditMessages.java b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/messages/AuditMessages.java
index de39cff30f..387b2046fd 100644
--- a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/messages/AuditMessages.java
+++ b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/messages/AuditMessages.java
@@ -30,6 +30,7 @@ public class AuditMessages {
public static final String HEAT_VALIDATION_STARTED = "HEAT validation started. VSP Id: ";
public static final String HEAT_VALIDATION_COMPLETED = "HEAT validation completed. VSP Id: ";
public static final String HEAT_VALIDATION_ERROR = "HEAT validation error: %s. VSP Id: %s";
+ public static final String CSAR_VALIDATION_STARTED = "CSAR validation started. VSP Id: ";
public static final String HEAT_TRANSLATION_STARTED = "HEAT translation started. VSP Id: ";
public static final String HEAT_TRANSLATION_COMPLETED = "HEAT translation completed. VSP Id: ";
public static final String ENRICHMENT_ERROR = "Enrichment error: %s. VSP Id: %s";
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ExternalArtifactEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ExternalArtifactEnricher.java
index fb0622cd67..ffc27106bb 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ExternalArtifactEnricher.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/ExternalArtifactEnricher.java
@@ -22,7 +22,6 @@ package org.openecomp.sdc.enrichment.impl.external.artifact;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.core.utilities.json.JsonUtil;
-import org.openecomp.sdc.common.utils.CommonUtil;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
import org.openecomp.sdc.enrichment.inter.Enricher;
import org.openecomp.sdc.enrichment.inter.ExternalArtifactEnricherInterface;
@@ -30,7 +29,6 @@ import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
-import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.util.Collection;
import java.util.HashMap;
@@ -48,11 +46,9 @@ public class ExternalArtifactEnricher extends Enricher {
private static Logger logger = LoggerFactory.getLogger(ExternalArtifactEnricher.class);
private static Collection<String> getExternalArtifactEnrichedImplClassesList() {
- InputStream externalArtifactEnrichConfigurationJson =
- FileUtils.getFileInputStream(EXTERNAL_ARTIFACT_ENRICH_CONF_FILE);
@SuppressWarnings("unchecked")
- Map<String, String> confFileAsMap =
- JsonUtil.json2Object(externalArtifactEnrichConfigurationJson, Map.class);
+ Map<String, String> confFileAsMap = FileUtils.readViaInputStream(EXTERNAL_ARTIFACT_ENRICH_CONF_FILE,
+ stream -> JsonUtil.json2Object(stream, Map.class));
return confFileAsMap.values();
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricher.java
index 32df165eb3..a7762e86ca 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricher.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricher.java
@@ -77,7 +77,7 @@ public class AbstractSubstituteToscaEnricher {
if (toscaAnalyzerService.isTypeOf(nodeTemplate, VFC_ABSTRACT_SUBSTITUTE, serviceTemplate,
toscaModel)) {
- String componentDisplayName = getComponentDisplayName(nodeTemplateId);
+ String componentDisplayName = getComponentDisplayName(nodeTemplateId, nodeTemplate);
setProperty(nodeTemplate, VM_TYPE_TAG, componentDisplayName);
@@ -157,7 +157,7 @@ public class AbstractSubstituteToscaEnricher {
if (toscaAnalyzerService.isTypeOf(nodeTemplate, VFC_ABSTRACT_SUBSTITUTE, serviceTemplate,
toscaModel)) {
- String componentDisplayName = getComponentDisplayName(nodeTemplateId);
+ String componentDisplayName = getComponentDisplayName(nodeTemplateId, nodeTemplate);
if (componentDisplayNameToNodeTempalteIds.containsKey(componentDisplayName)) {
componentDisplayNameToNodeTempalteIds.get(componentDisplayName).add(nodeTemplateId);
@@ -206,12 +206,17 @@ public class AbstractSubstituteToscaEnricher {
nodeTemplate.setRequirements(requirements);
}
- private String getComponentDisplayName(String nodeTemplateId ) {
+ private String getComponentDisplayName(String nodeTemplateId, NodeTemplate nodeTemplate) {
String componentDisplayName = null;
if (nodeTemplateId.contains(ABSTRACT_NODE_TEMPLATE_ID_PREFIX)) {
String removedPrefix = nodeTemplateId.split(ABSTRACT_NODE_TEMPLATE_ID_PREFIX)[1];
final String[] removedSuffix = removedPrefix.split("_\\d");
componentDisplayName = removedSuffix[0];
+ } else {
+ final String type = nodeTemplate.getType();
+ final String[] splitted = type.split("\\.");
+ componentDisplayName = splitted[splitted.length - 1];
+
}
return componentDisplayName;
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java
index 38f7a1c56e..5f1a67138d 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java
@@ -42,7 +42,6 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.io.File;
-import java.io.InputStream;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collection;
@@ -159,8 +158,8 @@ public class MonitoringMibEnricherTest {
}
private ByteBuffer getMibByteBuffer(String fileName) {
- InputStream mibFile = FileUtils.getFileInputStream(this.getClass().getResource(fileName));
- byte[] mibBytes = FileUtils.toByteArray(mibFile);
+ byte[] mibBytes = FileUtils.readViaInputStream(this.getClass().getResource(fileName),
+ stream -> FileUtils.toByteArray(stream));
return ByteBuffer.wrap(mibBytes);
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricherTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricherTest.java
index aeefc91aa3..2f839a7946 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricherTest.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/ProcessArtifactEnricherTest.java
@@ -21,14 +21,12 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.io.File;
-import java.io.InputStream;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collection;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Mockito.atLeastOnce;
-import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;
public class ProcessArtifactEnricherTest {
@@ -112,8 +110,8 @@ public class ProcessArtifactEnricherTest {
}
private ByteBuffer getMibByteBuffer(String fileName) {
- InputStream mibFile = FileUtils.getFileInputStream(this.getClass().getResource(fileName));
- byte[] mibBytes = FileUtils.toByteArray(mibFile);
+ byte[] mibBytes = FileUtils.readViaInputStream(this.getClass().getResource(fileName),
+ stream -> FileUtils.toByteArray(stream));
return ByteBuffer.wrap(mibBytes);
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml
index 30c4bde443..b3b7598c11 100644
--- a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml
@@ -56,5 +56,10 @@
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-tosca-converter-api</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
</dependencies>
</project>
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/src/main/java/org/openecomp/sdc/model/impl/zusammen/ServiceModelDaoZusammenImpl.java b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/src/main/java/org/openecomp/sdc/model/impl/zusammen/ServiceModelDaoZusammenImpl.java
index 575ba856a7..a7fecdd806 100644
--- a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/src/main/java/org/openecomp/sdc/model/impl/zusammen/ServiceModelDaoZusammenImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/src/main/java/org/openecomp/sdc/model/impl/zusammen/ServiceModelDaoZusammenImpl.java
@@ -22,9 +22,9 @@ import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.dao.types.VersionStatus;
+import org.openecomp.core.converter.datatypes.Constants;
import java.io.ByteArrayInputStream;
-import java.io.IOException;
import java.util.Collection;
import java.util.Map;
import java.util.Objects;
diff --git a/openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-api/pom.xml b/openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-api/pom.xml
new file mode 100644
index 0000000000..87a93ee6dd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-api/pom.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-orchestration-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-orchesrtation-api</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-core/pom.xml b/openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-core/pom.xml
new file mode 100644
index 0000000000..343ff0213c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-core/pom.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-orchesrtation-api</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-orchestration-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-orchesrtation-core</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-impl/pom.xml b/openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-impl/pom.xml
new file mode 100644
index 0000000000..8ecfa0de9e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-orchestration-lib/openecomp-sdc-orchesrtation-impl/pom.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-orchesrtation-api</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-orchestration-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-orchesrtation-impl</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-orchestration-lib/pom.xml b/openecomp-be/lib/openecomp-sdc-orchestration-lib/pom.xml
new file mode 100644
index 0000000000..dbcef4da29
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-orchestration-lib/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>openecomp-sdc-orchestration-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <modules>
+ <module>openecomp-sdc-orchesrtation-api</module>
+ <module>openecomp-sdc-orchesrtation-core</module>
+ <module>openecomp-sdc-orchesrtation-impl</module>
+ </modules>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java
index cac3c4ce08..e8fddc3108 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/src/test/java/com/att/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java
@@ -20,16 +20,12 @@
package com.att.sdc.translator.services.heattotosca.impl.resourcetranslation;
-import static org.junit.Assert.assertEquals;
-
import org.apache.commons.collections4.MapUtils;
import org.junit.Assert;
import org.junit.Before;
import org.openecomp.core.translator.datatypes.TranslatorOutput;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.core.utilities.json.JsonUtil;
-import org.openecomp.core.validation.api.ValidationManager;
-import org.openecomp.core.validation.factory.ValidationManagerFactory;
import org.openecomp.core.validation.util.MessageContainerUtil;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.common.errors.ErrorCategory;
@@ -46,9 +42,9 @@ import org.openecomp.sdc.logging.types.LoggerErrorCode;
import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.tosca.datatypes.model.GroupDefinition;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
-import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
@@ -61,7 +57,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.net.URL;
import java.util.HashMap;
import java.util.HashSet;
@@ -71,6 +66,8 @@ import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
+import static org.junit.Assert.assertEquals;
+
public class BaseResourceTranslationTest {
@@ -280,14 +277,14 @@ public class BaseResourceTranslationTest {
} else {
Assert.fail("Invalid expected output files directory");
}
+
for (int i = 0; i < fileList.length; i++) {
- InputStream serviceTemplateInputStream = FileUtils.getFileInputStream
- (BaseResourceTranslationTest.class
- .getClassLoader().getResource(baseDirPath + fileList[i]));
- ServiceTemplate serviceTemplate = toscaExtensionYamlUtil.yamlToObject
- (serviceTemplateInputStream, ServiceTemplate.class);
+ URL resource = BaseResourceTranslationTest.class.getClassLoader().getResource(baseDirPath + fileList[i]);
+ ServiceTemplate serviceTemplate = FileUtils.readViaInputStream(resource,
+ stream -> toscaExtensionYamlUtil.yamlToObject(stream, ServiceTemplate.class));
serviceTemplateMap.put(fileList[i], serviceTemplate);
}
+
} catch (Exception e) {
Assert.fail(e.getMessage());
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
index 0e6610d5cd..c03ca56d49 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
@@ -24,12 +24,15 @@ import org.openecomp.config.api.Configuration;
import org.openecomp.config.api.ConfigurationManager;
import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCode;
import org.openecomp.sdc.common.utils.SdcCommon;
import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
import org.openecomp.sdc.heat.datatypes.manifest.FileData;
import org.openecomp.sdc.heat.datatypes.manifest.ManifestFile;
import org.openecomp.sdc.heat.datatypes.model.Resource;
import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.ToscaUtil;
import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslatedHeatResource;
@@ -42,8 +45,6 @@ import org.openecomp.sdc.translator.services.heattotosca.NameExtractor;
import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -67,23 +68,23 @@ public class TranslationContext {
Configuration config = ConfigurationManager.lookup();
String propertyFileName = SdcCommon.HEAT_TO_TOSCA_MAPPING_CONF;
translationMapping =
- config.generateMap(ConfigConstants.MAPPING_NAMESPACE, ConfigConstants.RESOURCE_MAPPING_KEY);
+ config.generateMap(ConfigConstants.MAPPING_NAMESPACE, ConfigConstants.RESOURCE_MAPPING_KEY);
try {
globalServiceTemplates = GlobalTypesGenerator.getGlobalTypesServiceTemplate();
} catch (Exception exc) {
throw new RuntimeException("Failed to load GlobalTypes", exc);
}
nameExtractorImplMap = config.populateMap(ConfigConstants.TRANSLATOR_NAMESPACE,
- ConfigConstants.NAMING_CONVENTION_EXTRACTOR_IMPL_KEY, ImplementationConfiguration.class);
+ ConfigConstants.NAMING_CONVENTION_EXTRACTOR_IMPL_KEY, ImplementationConfiguration.class);
supportedConsolidationComputeResources = config.populateMap(ConfigConstants
- .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
- .SUPPORTED_CONSOLIDATION_COMPUTE_RESOURCES_KEY, ImplementationConfiguration.class);
+ .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
+ .SUPPORTED_CONSOLIDATION_COMPUTE_RESOURCES_KEY, ImplementationConfiguration.class);
supportedConsolidationPortResources = config.populateMap(ConfigConstants
- .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
- .SUPPORTED_CONSOLIDATION_PORT_RESOURCES_KEY, ImplementationConfiguration.class);
+ .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
+ .SUPPORTED_CONSOLIDATION_PORT_RESOURCES_KEY, ImplementationConfiguration.class);
enrichPortResourceProperties = config.getAsStringValues(ConfigConstants
- .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
- .ENRICH_PORT_RESOURCE_PROP);
+ .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
+ .ENRICH_PORT_RESOURCE_PROP);
}
@@ -118,15 +119,18 @@ public class TranslationContext {
private Map<String, UnifiedSubstitutionData> unifiedSubstitutionData = new HashMap<>();
private Set<String> unifiedHandledServiceTemplates = new HashSet<>();
+ private Map<String, Map<RequirementAssignment, String>>
+ mapDependencySubMappingToRequirementAssignment = new HashMap<>();
+
public static Map<String, ImplementationConfiguration>
getSupportedConsolidationComputeResources() {
return supportedConsolidationComputeResources;
}
public static void setSupportedConsolidationComputeResources(
- Map<String, ImplementationConfiguration> supportedConsolidationComputeResources) {
+ Map<String, ImplementationConfiguration> supportedConsolidationComputeResources) {
TranslationContext.supportedConsolidationComputeResources =
- supportedConsolidationComputeResources;
+ supportedConsolidationComputeResources;
}
public static Map<String, ImplementationConfiguration> getSupportedConsolidationPortResources() {
@@ -134,7 +138,7 @@ public class TranslationContext {
}
public static void setSupportedConsolidationPortResources(
- Map<String, ImplementationConfiguration> supportedConsolidationPortResources) {
+ Map<String, ImplementationConfiguration> supportedConsolidationPortResources) {
TranslationContext.supportedConsolidationPortResources = supportedConsolidationPortResources;
}
@@ -146,7 +150,7 @@ public class TranslationContext {
*/
public static NameExtractor getNameExtractorImpl(String extractorImplKey) {
String nameExtractorImplClassName =
- nameExtractorImplMap.get(extractorImplKey).getImplementationClass();
+ nameExtractorImplMap.get(extractorImplKey).getImplementationClass();
return CommonMethods.newInstance(nameExtractorImplClassName, NameExtractor.class);
}
@@ -156,7 +160,7 @@ public class TranslationContext {
}
public void setUnifiedSubstitutionData(
- Map<String, UnifiedSubstitutionData> unifiedSubstitutionData) {
+ Map<String, UnifiedSubstitutionData> unifiedSubstitutionData) {
this.unifiedSubstitutionData = unifiedSubstitutionData;
}
@@ -166,14 +170,14 @@ public class TranslationContext {
NodeTemplate nodeTemplate) {
this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
this.unifiedSubstitutionData
- .get(serviceTemplateName)
- .addCleanedNodeTemplate(nodeTemplateId, unifiedCompositionEntity, nodeTemplate);
+ .get(serviceTemplateName)
+ .addCleanedNodeTemplate(nodeTemplateId, unifiedCompositionEntity, nodeTemplate);
}
public NodeTemplate getCleanedNodeTemplate(String serviceTemplateName,
String nodeTemplateId) {
return this.unifiedSubstitutionData.get(serviceTemplateName)
- .getCleanedNodeTemplate(nodeTemplateId);
+ .getCleanedNodeTemplate(nodeTemplateId);
}
public void addUnifiedNestedNodeTemplateId(String serviceTemplateName,
@@ -181,13 +185,13 @@ public class TranslationContext {
String unifiedNestedNodeTemplateId) {
this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
this.unifiedSubstitutionData.get(serviceTemplateName)
- .addUnifiedNestedNodeTemplateId(nestedNodeTemplateId, unifiedNestedNodeTemplateId);
+ .addUnifiedNestedNodeTemplateId(nestedNodeTemplateId, unifiedNestedNodeTemplateId);
}
public Optional<String> getUnifiedNestedNodeTemplateId(String serviceTemplateName,
String nestedNodeTemplateId) {
return this.unifiedSubstitutionData.get(serviceTemplateName) == null ? Optional.empty()
- : this.unifiedSubstitutionData.get(serviceTemplateName)
+ : this.unifiedSubstitutionData.get(serviceTemplateName)
.getUnifiedNestedNodeTemplateId(nestedNodeTemplateId);
}
@@ -196,13 +200,13 @@ public class TranslationContext {
String unifiedNestedNodeTypeId) {
this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
this.unifiedSubstitutionData.get(serviceTemplateName)
- .addUnifiedNestedNodeTypeId(nestedNodeTypeId, unifiedNestedNodeTypeId);
+ .addUnifiedNestedNodeTypeId(nestedNodeTypeId, unifiedNestedNodeTypeId);
}
public Optional<String> getUnifiedNestedNodeTypeId(String serviceTemplateName,
String nestedNodeTemplateId) {
return this.unifiedSubstitutionData.get(serviceTemplateName) == null ? Optional.empty()
- : this.unifiedSubstitutionData.get(serviceTemplateName)
+ : this.unifiedSubstitutionData.get(serviceTemplateName)
.getUnifiedNestedNodeTypeId(nestedNodeTemplateId);
}
@@ -259,12 +263,12 @@ public class TranslationContext {
}
public Set<String> getAllTranslatedResourceIdsFromDiffNestedFiles(String
- nestedHeatFileNameToSkip){
+ nestedHeatFileNameToSkip){
Set<String> allTranslatedResourceIds = new HashSet<>();
this.translatedIds.entrySet().stream().filter(
- heatFileNameToTranslatedIdsEntry -> !heatFileNameToTranslatedIdsEntry.getKey()
- .equals(nestedHeatFileNameToSkip)).forEach(heatFileNameToTranslatedIdsEntry -> {
+ heatFileNameToTranslatedIdsEntry -> !heatFileNameToTranslatedIdsEntry.getKey()
+ .equals(nestedHeatFileNameToSkip)).forEach(heatFileNameToTranslatedIdsEntry -> {
allTranslatedResourceIds.addAll(heatFileNameToTranslatedIdsEntry.getValue().keySet());
});
@@ -325,7 +329,7 @@ public class TranslationContext {
public void addHeatSharedResourcesByParam(String parameterName, String resourceId,
Resource resource) {
this.addHeatSharedResourcesByParam(parameterName,
- new TranslatedHeatResource(resourceId, resource));
+ new TranslatedHeatResource(resourceId, resource));
}
private void addHeatSharedResourcesByParam(String parameterName,
@@ -351,7 +355,7 @@ public class TranslationContext {
}
public void addUsedHeatPseudoParams(String heatFileName, String heatPseudoParam, String
- translatedToscaParam) {
+ translatedToscaParam) {
if (Objects.isNull(this.usedHeatPseudoParams.get(heatFileName))) {
this.usedHeatPseudoParams.put(heatFileName, new HashMap<>());
}
@@ -371,15 +375,22 @@ public class TranslationContext {
String abstractNodeTemplateId) {
Map<String, String> nodeAbstractNodeTemplateIdMap = this.getUnifiedSubstitutionData()
- .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData())
- .getNodesRelatedAbstractNode();
+ .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData())
+ .getNodesRelatedAbstractNode();
if (nodeAbstractNodeTemplateIdMap == null) {
nodeAbstractNodeTemplateIdMap = new HashMap<>();
}
+
+ if(nodeAbstractNodeTemplateIdMap.containsKey(originalNodeTemplateId)){
+ throw new CoreException((new ErrorCode.ErrorCodeBuilder())
+ .withMessage("Resource with id "
+ + originalNodeTemplateId + " occures more than once in different addOn files")
+ .build());
+ }
nodeAbstractNodeTemplateIdMap.put(originalNodeTemplateId, abstractNodeTemplateId);
this.getUnifiedSubstitutionData().get(serviceTemplateFileName).setNodesRelatedAbstractNode(
- nodeAbstractNodeTemplateIdMap);
+ nodeAbstractNodeTemplateIdMap);
}
/**
@@ -392,23 +403,23 @@ public class TranslationContext {
* service template
*/
public void addSubstitutionServiceTemplateUnifiedSubstitutionData(
- String serviceTemplateFileName,
- String originalNodeTemplateId,
- String substitutionServiceTemplateNodeTemplateId) {
+ String serviceTemplateFileName,
+ String originalNodeTemplateId,
+ String substitutionServiceTemplateNodeTemplateId) {
Map<String, String> nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap = this
- .getUnifiedSubstitutionData()
- .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData())
- .getNodesRelatedSubstitutionServiceTemplateNode();
+ .getUnifiedSubstitutionData()
+ .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData())
+ .getNodesRelatedSubstitutionServiceTemplateNode();
if (nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap == null) {
nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap = new HashMap<>();
}
nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap.put(originalNodeTemplateId,
- substitutionServiceTemplateNodeTemplateId);
+ substitutionServiceTemplateNodeTemplateId);
this.getUnifiedSubstitutionData().get(serviceTemplateFileName)
- .setNodesRelatedSubstitutionServiceTemplateNode(
- nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap);
+ .setNodesRelatedSubstitutionServiceTemplateNode(
+ nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap);
}
/**
@@ -420,7 +431,7 @@ public class TranslationContext {
public String getUnifiedAbstractNodeTemplateId(ServiceTemplate serviceTemplate,
String nodeTemplateId) {
UnifiedSubstitutionData unifiedSubstitutionData =
- this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
+ this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
return unifiedSubstitutionData.getNodesRelatedAbstractNode().get(nodeTemplateId);
}
@@ -434,26 +445,26 @@ public class TranslationContext {
public String getUnifiedSubstitutionNodeTemplateId(ServiceTemplate serviceTemplate,
String nodeTemplateId) {
UnifiedSubstitutionData unifiedSubstitutionData =
- this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
+ this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
return unifiedSubstitutionData.getNodesRelatedSubstitutionServiceTemplateNode()
- .get(nodeTemplateId);
+ .get(nodeTemplateId);
}
public int getHandledNestedComputeNodeTemplateIndex(String serviceTemplateName,
String computeType) {
return this.unifiedSubstitutionData.get(serviceTemplateName)
- .getHandledNestedComputeNodeTemplateIndex(computeType);
+ .getHandledNestedComputeNodeTemplateIndex(computeType);
}
public void updateHandledComputeType(String serviceTemplateName,
String handledComputeType,
String nestedServiceTemplateFileName) {
String globalSTName =
- ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+ ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
this.unifiedSubstitutionData.putIfAbsent(
- globalSTName, new UnifiedSubstitutionData());
+ globalSTName, new UnifiedSubstitutionData());
this.unifiedSubstitutionData.get(globalSTName)
- .addHandledComputeType(handledComputeType);
+ .addHandledComputeType(handledComputeType);
this.unifiedSubstitutionData.get(globalSTName).addHandlesNestedServiceTemplate(nestedServiceTemplateFileName);
this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
@@ -469,15 +480,15 @@ public class TranslationContext {
public boolean isComputeTypeHandledInServiceTemplate(String serviceTemplateName,
String computeType) {
return !Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))
- && this.unifiedSubstitutionData.get(serviceTemplateName)
- .isComputeTypeHandledInServiceTemplate(computeType);
+ && this.unifiedSubstitutionData.get(serviceTemplateName)
+ .isComputeTypeHandledInServiceTemplate(computeType);
}
public int getHandledNestedComputeNodeTemplateIndex(String serviceTemplateName,
String nestedServiceTemplateName,
String computeType){
return this.unifiedSubstitutionData.get(serviceTemplateName)
- .getHandledNestedComputeNodeTemplateIndex(computeType);
+ .getHandledNestedComputeNodeTemplateIndex(computeType);
}
public boolean isNestedServiceTemplateWasHandled(String serviceTemplateName,
@@ -486,13 +497,13 @@ public class TranslationContext {
return false;
}
return this.unifiedSubstitutionData.get(serviceTemplateName)
- .isNestedServiceTemplateWasHandled(nestedServiceTemplateFileName);
+ .isNestedServiceTemplateWasHandled(nestedServiceTemplateFileName);
}
public Set<String> getAllRelatedNestedNodeTypeIds(){
String globalName = "GlobalSubstitutionTypes";
if(Objects.isNull(this.unifiedSubstitutionData) ||
- Objects.isNull(this.unifiedSubstitutionData.get(globalName))){
+ Objects.isNull(this.unifiedSubstitutionData.get(globalName))){
return new HashSet<>();
}
@@ -520,14 +531,14 @@ public class TranslationContext {
return false;
}
return this.unifiedSubstitutionData.get(serviceTemplateName)
- .isNestedNodeWasHandled(nestedNodeTemplateId);
+ .isNestedNodeWasHandled(nestedNodeTemplateId);
}
public void addNestedNodeAsHandled(String serviceTemplateName,
String nestedNodeTemplateId) {
this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
this.unifiedSubstitutionData.get(serviceTemplateName)
- .addHandledNestedNodes(nestedNodeTemplateId);
+ .addHandledNestedNodes(nestedNodeTemplateId);
}
public void updateUsedTimesForNestedComputeNodeType(String serviceTemplateName,
@@ -535,7 +546,7 @@ public class TranslationContext {
this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
this.unifiedSubstitutionData.get(serviceTemplateName)
- .updateUsedTimesForNestedComputeNodeType(computeType);
+ .updateUsedTimesForNestedComputeNodeType(computeType);
}
public int getGlobalNodeTypeIndex(String serviceTemplateName,
@@ -544,7 +555,7 @@ public class TranslationContext {
return 0;
}
return this.unifiedSubstitutionData.get(serviceTemplateName).getGlobalNodeTypeIndex
- (computeType);
+ (computeType);
}
public void addNewPropertyIdToNodeTemplate(String serviceTemplateName,
@@ -552,7 +563,7 @@ public class TranslationContext {
Object origPropertyValue){
this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
this.unifiedSubstitutionData.get(serviceTemplateName).addNewPropertyIdToNodeTemplate(
- newPropertyId, origPropertyValue);
+ newPropertyId, origPropertyValue);
}
public Optional<Object> getNewPropertyInputParamId(String serviceTemplateName,
@@ -562,7 +573,7 @@ public class TranslationContext {
}
return this.unifiedSubstitutionData.get(serviceTemplateName).getNewPropertyInputParam
- (newPropertyId);
+ (newPropertyId);
}
public Map<String, Object> getAllNewPropertyInputParamIdsPerNodeTenplateId(String serviceTemplateName){
@@ -574,5 +585,27 @@ public class TranslationContext {
}
+ public void addSubMappingReqAssignment(String serviceTemplateName,
+ RequirementAssignment requirementAssignment,
+ String newReqId){
+ this.mapDependencySubMappingToRequirementAssignment
+ .putIfAbsent(serviceTemplateName, new HashMap<>());
+ this.mapDependencySubMappingToRequirementAssignment.get(serviceTemplateName)
+ .putIfAbsent(requirementAssignment, newReqId);
+ }
+
+ public Optional<String> getNewReqAssignmentDependencyId(String serviceTemplateName,
+ RequirementAssignment requirementAssignment){
+ if(!this.mapDependencySubMappingToRequirementAssignment.containsKey(serviceTemplateName)){
+ return Optional.empty();
+ }
+
+ Map<RequirementAssignment, String> requirementAssignmentMap =
+ this.mapDependencySubMappingToRequirementAssignment.get(serviceTemplateName);
+ return requirementAssignmentMap.containsKey
+ (requirementAssignment) ? Optional.of(requirementAssignmentMap.get(requirementAssignment)) :
+ Optional.empty();
+ }
+
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java
index 4e92372b7e..b0bac3b834 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java
@@ -57,41 +57,41 @@ public class ConsolidationDataUtil {
* @return the compute template consolidation data
*/
public static ComputeTemplateConsolidationData getComputeTemplateConsolidationData(
- TranslationContext context,
- ServiceTemplate serviceTemplate,
- String computeNodeType,
- String computeNodeTemplateId) {
+ TranslationContext context,
+ ServiceTemplate serviceTemplate,
+ String computeNodeType,
+ String computeNodeTemplateId) {
ConsolidationData consolidationData = context.getConsolidationData();
String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
ComputeConsolidationData computeConsolidationData = consolidationData
- .getComputeConsolidationData();
+ .getComputeConsolidationData();
FileComputeConsolidationData fileComputeConsolidationData = computeConsolidationData
- .getFileComputeConsolidationData(serviceTemplateFileName);
+ .getFileComputeConsolidationData(serviceTemplateFileName);
if (fileComputeConsolidationData == null) {
fileComputeConsolidationData = new FileComputeConsolidationData();
computeConsolidationData.setFileComputeConsolidationData(serviceTemplateFileName,
- fileComputeConsolidationData);
+ fileComputeConsolidationData);
}
TypeComputeConsolidationData typeComputeConsolidationData = fileComputeConsolidationData
- .getTypeComputeConsolidationData(computeNodeType);
+ .getTypeComputeConsolidationData(computeNodeType);
if (typeComputeConsolidationData == null) {
typeComputeConsolidationData = new TypeComputeConsolidationData();
fileComputeConsolidationData.setTypeComputeConsolidationData(computeNodeType,
- typeComputeConsolidationData);
+ typeComputeConsolidationData);
}
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- typeComputeConsolidationData.getComputeTemplateConsolidationData(computeNodeTemplateId);
+ typeComputeConsolidationData.getComputeTemplateConsolidationData(computeNodeTemplateId);
if (computeTemplateConsolidationData == null) {
computeTemplateConsolidationData = new ComputeTemplateConsolidationData();
computeTemplateConsolidationData.setNodeTemplateId(computeNodeTemplateId);
typeComputeConsolidationData.setComputeTemplateConsolidationData(computeNodeTemplateId,
- computeTemplateConsolidationData);
+ computeTemplateConsolidationData);
}
return computeTemplateConsolidationData;
@@ -107,9 +107,9 @@ public class ConsolidationDataUtil {
* @return the port template consolidation data
*/
public static PortTemplateConsolidationData getPortTemplateConsolidationData(
- TranslationContext context,
- ServiceTemplate serviceTemplate,
- String portNodeTemplateId) {
+ TranslationContext context,
+ ServiceTemplate serviceTemplate,
+ String portNodeTemplateId) {
ConsolidationData consolidationData = context.getConsolidationData();
String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
@@ -117,21 +117,21 @@ public class ConsolidationDataUtil {
PortConsolidationData portConsolidationData = consolidationData.getPortConsolidationData();
FilePortConsolidationData filePortConsolidationData = portConsolidationData
- .getFilePortConsolidationData(serviceTemplateFileName);
+ .getFilePortConsolidationData(serviceTemplateFileName);
if (filePortConsolidationData == null) {
filePortConsolidationData = new FilePortConsolidationData();
portConsolidationData.setFilePortConsolidationData(serviceTemplateFileName,
- filePortConsolidationData);
+ filePortConsolidationData);
}
PortTemplateConsolidationData portTemplateConsolidationData =
- filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId);
+ filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId);
if (portTemplateConsolidationData == null) {
portTemplateConsolidationData = new PortTemplateConsolidationData();
portTemplateConsolidationData.setNodeTemplateId(portNodeTemplateId);
filePortConsolidationData.setPortTemplateConsolidationData(portNodeTemplateId,
- portTemplateConsolidationData);
+ portTemplateConsolidationData);
}
return portTemplateConsolidationData;
@@ -147,40 +147,40 @@ public class ConsolidationDataUtil {
*@param nestedNodeTemplateId the nested node template id @return the nested template consolidation data
*/
public static NestedTemplateConsolidationData getNestedTemplateConsolidationData(
- TranslationContext context,
- ServiceTemplate serviceTemplate,
- String nestedHeatFileName, String nestedNodeTemplateId) {
+ TranslationContext context,
+ ServiceTemplate serviceTemplate,
+ String nestedHeatFileName, String nestedNodeTemplateId) {
if(isNestedResourceIdOccuresInDifferentNestedFiles(context, nestedHeatFileName,
- nestedNodeTemplateId)){
+ nestedNodeTemplateId)){
throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage("Resource with id "
- + nestedNodeTemplateId + " occures more than once in different addOn "
- + "files").build());
+ .withMessage("Resource with id "
+ + nestedNodeTemplateId + " occures more than once in different addOn "
+ + "files").build());
}
ConsolidationData consolidationData = context.getConsolidationData();
String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
NestedConsolidationData nestedConsolidationData = consolidationData
- .getNestedConsolidationData();
+ .getNestedConsolidationData();
FileNestedConsolidationData fileNestedConsolidationData = nestedConsolidationData
- .getFileNestedConsolidationData(serviceTemplateFileName);
+ .getFileNestedConsolidationData(serviceTemplateFileName);
if (fileNestedConsolidationData == null) {
fileNestedConsolidationData = new FileNestedConsolidationData();
nestedConsolidationData.setFileNestedConsolidationData(serviceTemplateFileName,
- fileNestedConsolidationData);
+ fileNestedConsolidationData);
}
NestedTemplateConsolidationData nestedTemplateConsolidationData =
- fileNestedConsolidationData.getNestedTemplateConsolidationData(nestedNodeTemplateId);
+ fileNestedConsolidationData.getNestedTemplateConsolidationData(nestedNodeTemplateId);
if (nestedTemplateConsolidationData == null) {
nestedTemplateConsolidationData = new NestedTemplateConsolidationData();
nestedTemplateConsolidationData.setNodeTemplateId(nestedNodeTemplateId);
fileNestedConsolidationData.setNestedTemplateConsolidationData(nestedNodeTemplateId,
- nestedTemplateConsolidationData);
+ nestedTemplateConsolidationData);
}
return nestedTemplateConsolidationData;
@@ -199,7 +199,7 @@ public class ConsolidationDataUtil {
* @param translatedGroupId Group id of which compute node is a part
*/
public static void updateGroupIdInConsolidationData(EntityConsolidationData
- entityConsolidationData,
+ entityConsolidationData,
String translatedGroupId) {
if (entityConsolidationData.getGroupIds() == null) {
entityConsolidationData.setGroupIds(new ArrayList<>());
@@ -220,12 +220,12 @@ public class ConsolidationDataUtil {
String computeNodeTemplateId,
String requirementId,
RequirementAssignment
- requirementAssignment) {
+ requirementAssignment) {
TranslationContext translationContext = translateTo.getContext();
ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- getComputeTemplateConsolidationData(translationContext, serviceTemplate, computeType,
- computeNodeTemplateId);
+ getComputeTemplateConsolidationData(translationContext, serviceTemplate, computeType,
+ computeNodeTemplateId);
computeTemplateConsolidationData.addVolume(requirementId, requirementAssignment);
}
@@ -243,8 +243,8 @@ public class ConsolidationDataUtil {
TranslationContext translationContext = translateTo.getContext();
ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- getComputeTemplateConsolidationData(translationContext, serviceTemplate, computeNodeType,
- translateTo.getTranslatedId());
+ getComputeTemplateConsolidationData(translationContext, serviceTemplate, computeNodeType,
+ translateTo.getTranslatedId());
computeTemplateConsolidationData.addPort(getPortType(portNodeTemplateId), portNodeTemplateId);
// create port in consolidation data
getPortTemplateConsolidationData(translationContext, serviceTemplate, portNodeTemplateId);
@@ -264,34 +264,42 @@ public class ConsolidationDataUtil {
RequirementAssignment requirementAssignment) {
ConsolidationEntityType consolidationEntityType = ConsolidationEntityType.OTHER;
HeatOrchestrationTemplate heatOrchestrationTemplate = translateTo
- .getHeatOrchestrationTemplate();
+ .getHeatOrchestrationTemplate();
TranslationContext translationContext = translateTo.getContext();
consolidationEntityType.setEntityType(heatOrchestrationTemplate, sourceResource,
- targetResource, translateTo.getContext());
+ targetResource, translateTo.getContext());
// Add resource dependency information in nodesConnectedIn if the target node
// is a consolidation entity
if (isConsolidationEntity(consolidationEntityType.getTargetEntityType())) {
ConsolidationDataUtil.updateNodesConnectedIn(translateTo,
- nodeTemplateId, consolidationEntityType.getTargetEntityType(), targetResourceId,
- requirementId, requirementAssignment);
+ nodeTemplateId, consolidationEntityType.getTargetEntityType(), targetResourceId,
+ requirementId, requirementAssignment);
}
//Add resource dependency information in nodesConnectedOut if the source node
//is a consolidation entity
if (isConsolidationEntity(consolidationEntityType.getSourceEntityType())) {
ConsolidationDataUtil.updateNodesConnectedOut(translateTo,
- requirementAssignment.getNode(), consolidationEntityType.getSourceEntityType(),
- requirementId, requirementAssignment);
+ requirementAssignment.getNode(), consolidationEntityType.getSourceEntityType(),
+ requirementId, requirementAssignment);
+ ConsolidationDataUtil.updateNodesConnectedOut(translateTo,
+ requirementAssignment.getNode(), consolidationEntityType.getSourceEntityType(),
+ requirementId + "_" + nodeTemplateId, requirementAssignment);
+
+ translationContext.addSubMappingReqAssignment(ToscaUtil.getServiceTemplateFileName
+ (translateTo.getServiceTemplate()),
+ requirementAssignment, requirementId + "_" + nodeTemplateId);
+
}
}
private static boolean isConsolidationEntity(ConsolidationEntityType consolidationEntityType) {
return (consolidationEntityType == ConsolidationEntityType.COMPUTE
- || consolidationEntityType == ConsolidationEntityType.PORT
- || consolidationEntityType == ConsolidationEntityType.NESTED
- || consolidationEntityType == ConsolidationEntityType.VFC_NESTED);
+ || consolidationEntityType == ConsolidationEntityType.PORT
+ || consolidationEntityType == ConsolidationEntityType.NESTED
+ || consolidationEntityType == ConsolidationEntityType.VFC_NESTED);
}
/**
@@ -312,18 +320,18 @@ public class ConsolidationDataUtil {
TranslationContext translationContext = translateTo.getContext();
ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
RequirementAssignmentData requirementAssignmentData = new RequirementAssignmentData(
- requirementId, requirementAssignment);
+ requirementId, requirementAssignment);
if (consolidationEntityType == ConsolidationEntityType.COMPUTE) {
String nodeType = DataModelUtil.getNodeTemplate(serviceTemplate, translateTo
- .getTranslatedId()).getType();
+ .getTranslatedId()).getType();
entityConsolidationData = getComputeTemplateConsolidationData(translationContext,
- serviceTemplate, nodeType, translateTo.getTranslatedId());
+ serviceTemplate, nodeType, translateTo.getTranslatedId());
} else if (consolidationEntityType == ConsolidationEntityType.PORT) {
entityConsolidationData = getPortTemplateConsolidationData(translationContext,
- serviceTemplate, translateTo.getTranslatedId());
+ serviceTemplate, translateTo.getTranslatedId());
} else if (consolidationEntityType == ConsolidationEntityType.VFC_NESTED
- || consolidationEntityType == ConsolidationEntityType.NESTED) {
+ || consolidationEntityType == ConsolidationEntityType.NESTED) {
//ConnectedOut data for nested is not updated
return;
}
@@ -333,8 +341,8 @@ public class ConsolidationDataUtil {
}
entityConsolidationData.getNodesConnectedOut()
- .computeIfAbsent(nodeTemplateId, k -> new ArrayList<>())
- .add(requirementAssignmentData);
+ .computeIfAbsent(nodeTemplateId, k -> new ArrayList<>())
+ .add(requirementAssignmentData);
}
/**
@@ -355,34 +363,34 @@ public class ConsolidationDataUtil {
TranslationContext translationContext = translateTo.getContext();
ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
RequirementAssignmentData requirementAssignmentData = new RequirementAssignmentData(
- requirementId, requirementAssignment);
+ requirementId, requirementAssignment);
String dependentNodeTemplateId = requirementAssignment.getNode();
if (consolidationEntityType == ConsolidationEntityType.COMPUTE) {
NodeTemplate computeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
- dependentNodeTemplateId);
+ dependentNodeTemplateId);
String nodeType = null;
if (Objects.isNull(computeNodeTemplate)) {
Resource targetResource =
- translateTo.getHeatOrchestrationTemplate().getResources().get(targetResourceId);
+ translateTo.getHeatOrchestrationTemplate().getResources().get(targetResourceId);
NameExtractor nodeTypeNameExtractor =
- translateTo.getContext().getNameExtractorImpl(targetResource.getType());
+ translateTo.getContext().getNameExtractorImpl(targetResource.getType());
nodeType =
- nodeTypeNameExtractor.extractNodeTypeName(translateTo.getHeatOrchestrationTemplate()
- .getResources().get(dependentNodeTemplateId),
- dependentNodeTemplateId, dependentNodeTemplateId);
+ nodeTypeNameExtractor.extractNodeTypeName(translateTo.getHeatOrchestrationTemplate()
+ .getResources().get(dependentNodeTemplateId),
+ dependentNodeTemplateId, dependentNodeTemplateId);
} else {
nodeType = computeNodeTemplate.getType();
}
entityConsolidationData = getComputeTemplateConsolidationData(translationContext,
- serviceTemplate, nodeType, dependentNodeTemplateId);
+ serviceTemplate, nodeType, dependentNodeTemplateId);
} else if (consolidationEntityType == ConsolidationEntityType.PORT) {
entityConsolidationData = getPortTemplateConsolidationData(translationContext,
- serviceTemplate, dependentNodeTemplateId);
+ serviceTemplate, dependentNodeTemplateId);
} else if (consolidationEntityType == ConsolidationEntityType.NESTED
- || consolidationEntityType == ConsolidationEntityType.VFC_NESTED) {
+ || consolidationEntityType == ConsolidationEntityType.VFC_NESTED) {
entityConsolidationData = getNestedTemplateConsolidationData(translationContext,
- serviceTemplate, translateTo.getHeatFileName(), dependentNodeTemplateId);
+ serviceTemplate, translateTo.getHeatFileName(), dependentNodeTemplateId);
}
if (entityConsolidationData.getNodesConnectedIn() == null) {
@@ -390,8 +398,8 @@ public class ConsolidationDataUtil {
}
entityConsolidationData.getNodesConnectedIn()
- .computeIfAbsent(sourceNodeTemplateId, k -> new ArrayList<>())
- .add(requirementAssignmentData);
+ .computeIfAbsent(sourceNodeTemplateId, k -> new ArrayList<>())
+ .add(requirementAssignmentData);
}
@@ -406,7 +414,7 @@ public class ConsolidationDataUtil {
String resourceId) {
String resourceType = heatOrchestrationTemplate.getResources().get(resourceId).getType();
Map<String, ImplementationConfiguration> supportedComputeResources = TranslationContext
- .getSupportedConsolidationComputeResources();
+ .getSupportedConsolidationComputeResources();
if (supportedComputeResources.containsKey(resourceType)) {
if (supportedComputeResources.get(resourceType).isEnable()) {
return true;
@@ -425,7 +433,7 @@ public class ConsolidationDataUtil {
public static boolean isComputeResource(Resource resource) {
String resourceType = resource.getType();
Map<String, ImplementationConfiguration> supportedComputeResources = TranslationContext
- .getSupportedConsolidationComputeResources();
+ .getSupportedConsolidationComputeResources();
if (supportedComputeResources.containsKey(resourceType)) {
if (supportedComputeResources.get(resourceType).isEnable()) {
return true;
@@ -446,7 +454,7 @@ public class ConsolidationDataUtil {
String resourceId) {
String resourceType = heatOrchestrationTemplate.getResources().get(resourceId).getType();
Map<String, ImplementationConfiguration> supportedPortResources = TranslationContext
- .getSupportedConsolidationPortResources();
+ .getSupportedConsolidationPortResources();
if (supportedPortResources.containsKey(resourceType)) {
if (supportedPortResources.get(resourceType).isEnable()) {
return true;
@@ -465,7 +473,7 @@ public class ConsolidationDataUtil {
public static boolean isPortResource(Resource resource) {
String resourceType = resource.getType();
Map<String, ImplementationConfiguration> supportedPortResources = TranslationContext
- .getSupportedConsolidationPortResources();
+ .getSupportedConsolidationPortResources();
if (supportedPortResources.containsKey(resourceType)) {
if (supportedPortResources.get(resourceType).isEnable()) {
return true;
@@ -486,8 +494,8 @@ public class ConsolidationDataUtil {
String resourceId) {
String resourceType = heatOrchestrationTemplate.getResources().get(resourceId).getType();
return (resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
- || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
- .getHeatResource()));
+ || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
+ .getHeatResource()));
}
/**
@@ -499,8 +507,8 @@ public class ConsolidationDataUtil {
public static boolean isVolumeResource(Resource resource) {
String resourceType = resource.getType();
return (resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
- || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
- .getHeatResource()));
+ || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
+ .getHeatResource()));
}
/**
@@ -541,7 +549,7 @@ public class ConsolidationDataUtil {
TranslationContext context = translateTo.getContext();
ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
getNestedTemplateConsolidationData(
- context, serviceTemplate, translateTo.getHeatFileName(), translateTo.getTranslatedId());
+ context, serviceTemplate, translateTo.getHeatFileName(), translateTo.getTranslatedId());
}
public static void removeSharedResource(ServiceTemplate serviceTemplate,
@@ -551,23 +559,23 @@ public class ConsolidationDataUtil {
String contrailSharedResourceId,
String sharedTranslatedResourceId) {
if (ConsolidationDataUtil.isComputeResource(heatOrchestrationTemplate,
- contrailSharedResourceId)) {
+ contrailSharedResourceId)) {
NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
- sharedTranslatedResourceId);
+ sharedTranslatedResourceId);
EntityConsolidationData entityConsolidationData = getComputeTemplateConsolidationData(
- context, serviceTemplate, nodeTemplate.getType(), sharedTranslatedResourceId);
+ context, serviceTemplate, nodeTemplate.getType(), sharedTranslatedResourceId);
List<GetAttrFuncData> getAttrFuncDataList = entityConsolidationData
- .getOutputParametersGetAttrIn();
+ .getOutputParametersGetAttrIn();
removeParamNameFromAttrFuncList(paramName, getAttrFuncDataList);
}
if (ConsolidationDataUtil.isPortResource(heatOrchestrationTemplate,
- contrailSharedResourceId)) {
+ contrailSharedResourceId)) {
NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
- sharedTranslatedResourceId);
+ sharedTranslatedResourceId);
EntityConsolidationData entityConsolidationData = getPortTemplateConsolidationData(context,
- serviceTemplate, sharedTranslatedResourceId);
+ serviceTemplate, sharedTranslatedResourceId);
List<GetAttrFuncData> getAttrFuncDataList = entityConsolidationData
- .getOutputParametersGetAttrIn();
+ .getOutputParametersGetAttrIn();
removeParamNameFromAttrFuncList(paramName, getAttrFuncDataList);
}
}
@@ -604,7 +612,7 @@ public class ConsolidationDataUtil {
}
public static void updateOutputGetAttributeInConsolidationData(EntityConsolidationData
- entityConsolidationData,
+ entityConsolidationData,
String outputParameterName,
String attributeName) {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java
index 4934fa7a3a..876e524d96 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java
@@ -35,6 +35,7 @@ import org.apache.commons.lang3.tuple.Pair;
import org.openecomp.config.api.Configuration;
import org.openecomp.config.api.ConfigurationManager;
import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.core.utilities.json.JsonUtil;
import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
import org.openecomp.sdc.heat.services.HeatConstants;
import org.openecomp.sdc.logging.api.Logger;
@@ -56,6 +57,7 @@ import org.openecomp.sdc.tosca.datatypes.model.PropertyDefinition;
import org.openecomp.sdc.tosca.datatypes.model.PropertyType;
import org.openecomp.sdc.tosca.datatypes.model.RelationshipTemplate;
import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
+import org.openecomp.sdc.tosca.datatypes.model.RequirementDefinition;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.datatypes.model.SubstitutionMapping;
import org.openecomp.sdc.tosca.datatypes.model.heatextend.PropertyTypeExt;
@@ -95,27 +97,27 @@ import java.util.regex.Pattern;
public class UnifiedCompositionService {
protected static Logger logger =
- (Logger) LoggerFactory.getLogger(UnifiedCompositionService.class);
+ (Logger) LoggerFactory.getLogger(UnifiedCompositionService.class);
protected static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
private static Map<String, ImplementationConfiguration> unifiedCompositionImplMap;
static {
Configuration config = ConfigurationManager.lookup();
unifiedCompositionImplMap =
- config.populateMap(ConfigConstants.MANDATORY_UNIFIED_MODEL_NAMESPACE,
- ConfigConstants.UNIFIED_COMPOSITION_IMPL_KEY, ImplementationConfiguration.class);
+ config.populateMap(ConfigConstants.MANDATORY_UNIFIED_MODEL_NAMESPACE,
+ ConfigConstants.UNIFIED_COMPOSITION_IMPL_KEY, ImplementationConfiguration.class);
}
private ConsolidationService consolidationService = new ConsolidationService();
private static List<EntityConsolidationData> getPortConsolidationDataList(
- Set<String> portIds,
- List<UnifiedCompositionData> unifiedCompositionDataList) {
+ Set<String> portIds,
+ List<UnifiedCompositionData> unifiedCompositionDataList) {
List<EntityConsolidationData> portConsolidationDataList = new ArrayList<>();
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
- .getPortTemplateConsolidationDataList()) {
+ .getPortTemplateConsolidationDataList()) {
if (portIds.contains(portTemplateConsolidationData.getNodeTemplateId())) {
portConsolidationDataList.add(portTemplateConsolidationData);
}
@@ -146,8 +148,8 @@ public class UnifiedCompositionService {
return;
}
unifiedCompositionInstance.get()
- .createUnifiedComposition(serviceTemplate, nestedServiceTemplate,
- unifiedCompositionDataList, context);
+ .createUnifiedComposition(serviceTemplate, nestedServiceTemplate,
+ unifiedCompositionDataList, context);
mdcDataDebugMessage.debugExitMessage(null, null);
}
@@ -164,41 +166,59 @@ public class UnifiedCompositionService {
* @return the substitution service template
*/
public Optional<ServiceTemplate> createUnifiedSubstitutionServiceTemplate(
- ServiceTemplate serviceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList,
- TranslationContext context,
- String substitutionNodeTypeId,
- Integer index) {
+ ServiceTemplate serviceTemplate,
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ TranslationContext context,
+ String substitutionNodeTypeId,
+ Integer index) {
if (CollectionUtils.isEmpty(unifiedCompositionDataList)) {
return Optional.empty();
}
UnifiedCompositionData unifiedCompositionData = unifiedCompositionDataList.get(0);
String templateName =
- getTemplateName(serviceTemplate, unifiedCompositionData, substitutionNodeTypeId, index);
+ getTemplateName(serviceTemplate, unifiedCompositionData, substitutionNodeTypeId, index);
ServiceTemplate substitutionServiceTemplate =
- HeatToToscaUtil.createInitSubstitutionServiceTemplate(templateName);
+ HeatToToscaUtil.createInitSubstitutionServiceTemplate(templateName);
createIndexInputParameter(substitutionServiceTemplate);
String computeNodeType =
- handleCompute(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
- context);
+ handleCompute(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
+ context);
handlePorts(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
- computeNodeType, context);
+ computeNodeType, context);
createOutputParameters(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
- computeNodeType, context);
+ computeNodeType, context);
NodeType substitutionGlobalNodeType =
- handleSubstitutionGlobalNodeType(serviceTemplate, substitutionServiceTemplate,
- context, unifiedCompositionData, substitutionNodeTypeId, index);
+ handleSubstitutionGlobalNodeType(serviceTemplate, substitutionServiceTemplate,
+ context, unifiedCompositionData, substitutionNodeTypeId, index);
+
+ ServiceTemplate globalSubstitutionServiceTemplate =
+ HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
+ addComputeNodeTypeToGlobalST(computeNodeType, serviceTemplate,
+ globalSubstitutionServiceTemplate, substitutionGlobalNodeType);
HeatToToscaUtil.handleSubstitutionMapping(context,
- substitutionNodeTypeId,
- substitutionServiceTemplate, substitutionGlobalNodeType);
+ substitutionNodeTypeId,
+ substitutionServiceTemplate, substitutionGlobalNodeType);
context.getTranslatedServiceTemplates().put(templateName, substitutionServiceTemplate);
return Optional.of(substitutionServiceTemplate);
}
+ private void addComputeNodeTypeToGlobalST(String computeNodeType,
+ ServiceTemplate serviceTemplate,
+ ServiceTemplate globalSubstitutionServiceTemplate,
+ NodeType substitutionGlobalNodeType) {
+ NodeType nodeType = DataModelUtil.getNodeType(serviceTemplate, computeNodeType);
+ NodeType clonedNT =
+ (NodeType) DataModelUtil.getClonedObject(substitutionGlobalNodeType, NodeType.class);
+ clonedNT.setDerived_from(nodeType.getDerived_from());
+ DataModelUtil
+ .addNodeType(globalSubstitutionServiceTemplate, computeNodeType,
+ clonedNT);
+ }
+
/**
* Create abstract substitute node template that can be substituted by the input
* substitutionServiceTemplate.
@@ -213,12 +233,12 @@ public class UnifiedCompositionService {
* @return the abstract substitute node template id
*/
public String createAbstractSubstituteNodeTemplate(
- ServiceTemplate serviceTemplate,
- ServiceTemplate substitutionServiceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList,
- String substituteNodeTypeId,
- TranslationContext context,
- Integer index) {
+ ServiceTemplate serviceTemplate,
+ ServiceTemplate substitutionServiceTemplate,
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ String substituteNodeTypeId,
+ TranslationContext context,
+ Integer index) {
NodeTemplate substitutionNodeTemplate = new NodeTemplate();
List<String> directiveList = new ArrayList<>();
@@ -226,26 +246,26 @@ public class UnifiedCompositionService {
substitutionNodeTemplate.setDirectives(directiveList);
substitutionNodeTemplate.setType(substituteNodeTypeId);
Optional<Map<String, Object>> abstractSubstitutionProperties =
- createAbstractSubstitutionProperties(serviceTemplate,
- substitutionServiceTemplate, unifiedCompositionDataList, context);
+ createAbstractSubstitutionProperties(serviceTemplate,
+ substitutionServiceTemplate, unifiedCompositionDataList, context);
abstractSubstitutionProperties.ifPresent(substitutionNodeTemplate::setProperties);
//Add substitution filtering property
String substitutionServiceTemplateName = ToscaUtil.getServiceTemplateFileName(
- substitutionServiceTemplate);
+ substitutionServiceTemplate);
int count = unifiedCompositionDataList.size();
DataModelUtil.addSubstitutionFilteringProperty(substitutionServiceTemplateName,
- substitutionNodeTemplate, count);
+ substitutionNodeTemplate, count);
//Add index_value property
addIndexValueProperty(substitutionNodeTemplate);
String substituteNodeTemplateId =
- getSubstituteNodeTemplateId(serviceTemplate, unifiedCompositionDataList.get(0),
- substituteNodeTypeId, index);
+ getSubstituteNodeTemplateId(serviceTemplate, unifiedCompositionDataList.get(0),
+ substituteNodeTypeId, index);
//Add node template id and related abstract node template id in context
addUnifiedSubstitionData(context, serviceTemplate, unifiedCompositionDataList,
- substituteNodeTemplateId);
+ substituteNodeTemplateId);
DataModelUtil
- .addNodeTemplate(serviceTemplate, substituteNodeTemplateId, substitutionNodeTemplate);
+ .addNodeTemplate(serviceTemplate, substituteNodeTemplateId, substitutionNodeTemplate);
return substituteNodeTemplateId;
}
@@ -284,18 +304,18 @@ public class UnifiedCompositionService {
* @param context the translation context
*/
public void cleanUnifiedCompositionEntities(
- ServiceTemplate serviceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ TranslationContext context) {
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- unifiedCompositionData.getComputeTemplateConsolidationData();
+ unifiedCompositionData.getComputeTemplateConsolidationData();
cleanServiceTemplate(serviceTemplate, computeTemplateConsolidationData, context);
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(unifiedCompositionData);
+ getPortTemplateConsolidationDataList(unifiedCompositionData);
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
cleanServiceTemplate(serviceTemplate, portTemplateConsolidationData, context);
}
}
@@ -314,8 +334,8 @@ public class UnifiedCompositionService {
TranslationContext context) {
for (UnifiedCompositionData unifiedData : unifiedCompositionDataList) {
removeCleanedNodeType(
- unifiedData.getComputeTemplateConsolidationData().getNodeTemplateId(), serviceTemplate,
- context);
+ unifiedData.getComputeTemplateConsolidationData().getNodeTemplateId(), serviceTemplate,
+ context);
}
if (MapUtils.isEmpty(serviceTemplate.getNode_types())) {
serviceTemplate.setNode_types(null);
@@ -334,16 +354,16 @@ public class UnifiedCompositionService {
String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
UnifiedSubstitutionData unifiedSubstitutionData = context.getUnifiedSubstitutionData()
- .get(serviceTemplateFileName);
+ .get(serviceTemplateFileName);
if (Objects.nonNull(unifiedSubstitutionData)) {
//Handle get attribute in connectivity for abstarct node to abstract node templates
Set<String> abstractNodeIds =
- new HashSet<>(unifiedSubstitutionData.getAllRelatedAbstractNodeIds());
+ new HashSet<>(unifiedSubstitutionData.getAllRelatedAbstractNodeIds());
handleGetAttrInConnectivity(serviceTemplate, abstractNodeIds, context);
//Handle get attribute in connectivity for abstract node templates to nested node template
Set<String> nestedNodeIds =
- new HashSet<>(unifiedSubstitutionData.getAllUnifiedNestedNodeTemplateIds());
+ new HashSet<>(unifiedSubstitutionData.getAllUnifiedNestedNodeTemplateIds());
handleGetAttrInConnectivity(serviceTemplate, nestedNodeIds, context);
}
}
@@ -362,19 +382,19 @@ public class UnifiedCompositionService {
TranslationContext context) {
handleUnifiedNestedNodeType(mainServiceTemplate, nestedServiceTemplate, context);
updateUnifiedNestedTemplates(mainServiceTemplate, nestedServiceTemplate,
- unifiedCompositionData, context);
+ unifiedCompositionData, context);
}
private void handleGetAttrInConnectivity(ServiceTemplate serviceTemplate,
Set<String> unifiedNodeIds,
TranslationContext context) {
Map<String, NodeTemplate> nodeTemplates =
- serviceTemplate.getTopology_template().getNode_templates();
+ serviceTemplate.getTopology_template().getNode_templates();
String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
for (String unifiedNodeId : unifiedNodeIds) {
NodeTemplate nodeTemplate = nodeTemplates.get(unifiedNodeId);
handleGetAttrInAbstractNodeTemplate(serviceTemplate, context, serviceTemplateFileName,
- nodeTemplate);
+ nodeTemplate);
}
}
@@ -384,30 +404,30 @@ public class UnifiedCompositionService {
SubstitutionMapping substitutionMappings =
- nestedServiceTemplate.getTopology_template().getSubstitution_mappings();
+ nestedServiceTemplate.getTopology_template().getSubstitution_mappings();
String nodeTypeId = substitutionMappings.getNode_type();
Optional<String> newNestedNodeTypeId =
- getNewNestedNodeTypeId(mainServiceTemplate, nestedServiceTemplate, context);
+ getNewNestedNodeTypeId(mainServiceTemplate, nestedServiceTemplate, context);
ServiceTemplate globalSubstitutionServiceTemplate =
- context.getGlobalSubstitutionServiceTemplate();
+ context.getGlobalSubstitutionServiceTemplate();
if (isNestedServiceTemplateWasHandled(globalSubstitutionServiceTemplate, nestedServiceTemplate,
- context,
- newNestedNodeTypeId)) {
+ context,
+ newNestedNodeTypeId)) {
context
- .updateHandledComputeType(ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
- newNestedNodeTypeId.get(),
- ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
+ .updateHandledComputeType(ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
+ newNestedNodeTypeId.get(),
+ ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
return;
}
newNestedNodeTypeId.ifPresent(
- newNestedNodeTypeIdVal -> handleNestedNodeType(nodeTypeId, newNestedNodeTypeIdVal,
- nestedServiceTemplate, mainServiceTemplate, globalSubstitutionServiceTemplate,
- context));
+ newNestedNodeTypeIdVal -> handleNestedNodeType(nodeTypeId, newNestedNodeTypeIdVal,
+ nestedServiceTemplate, mainServiceTemplate, globalSubstitutionServiceTemplate,
+ context));
}
@@ -416,9 +436,9 @@ public class UnifiedCompositionService {
TranslationContext context,
Optional<String> newNestedNodeTypeId) {
return newNestedNodeTypeId.isPresent()
- && context.isNestedServiceTemplateWasHandled(
- ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
- ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
+ && context.isNestedServiceTemplateWasHandled(
+ ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
+ ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
}
private void handleNestedNodeType(String nodeTypeId, String newNestedNodeTypeId,
@@ -428,8 +448,8 @@ public class UnifiedCompositionService {
TranslationContext context) {
updateNestedServiceTemplate(nestedServiceTemplate, context);
updateNestedNodeType(nodeTypeId, newNestedNodeTypeId, nestedServiceTemplate,
- mainServiceTemplate,
- globalSubstitutionServiceTemplate, context);
+ mainServiceTemplate,
+ globalSubstitutionServiceTemplate, context);
}
@@ -442,24 +462,24 @@ public class UnifiedCompositionService {
private void enrichPortProperties(ServiceTemplate nestedServiceTemplate,
TranslationContext context) {
String nestedServiceTemplateFileName =
- ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate);
+ ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate);
FilePortConsolidationData filePortConsolidationData =
- context.getConsolidationData().getPortConsolidationData().getFilePortConsolidationData
- (nestedServiceTemplateFileName);
+ context.getConsolidationData().getPortConsolidationData().getFilePortConsolidationData
+ (nestedServiceTemplateFileName);
if (Objects.nonNull(filePortConsolidationData)) {
Set<String> portNodeTemplateIds = filePortConsolidationData.getAllPortNodeTemplateIds();
if (Objects.nonNull(portNodeTemplateIds)) {
for (String portNodeTemplateId : portNodeTemplateIds) {
NodeTemplate portNodeTemplate = DataModelUtil.getNodeTemplate(nestedServiceTemplate,
- portNodeTemplateId);
+ portNodeTemplateId);
List<EntityConsolidationData> portEntityConsolidationDataList = new ArrayList<>();
portEntityConsolidationDataList.add(filePortConsolidationData
- .getPortTemplateConsolidationData(portNodeTemplateId));
+ .getPortTemplateConsolidationData(portNodeTemplateId));
handleNodeTypeProperties(nestedServiceTemplate,
- portEntityConsolidationDataList, portNodeTemplate, UnifiedCompositionEntity.Port,
- null, context);
+ portEntityConsolidationDataList, portNodeTemplate, UnifiedCompositionEntity.Port,
+ null, context);
}
}
}
@@ -471,12 +491,14 @@ public class UnifiedCompositionService {
ServiceTemplate globalSubstitutionServiceTemplate,
TranslationContext context) {
String indexedNewNestedNodeTypeId =
- updateNodeTypeId(nodeTypeId, newNestedNodeTypeId, nestedServiceTemplate,
- mainServiceTemplate,
- globalSubstitutionServiceTemplate, context);
+ updateNodeTypeId(nodeTypeId, newNestedNodeTypeId, nestedServiceTemplate,
+ mainServiceTemplate,
+ globalSubstitutionServiceTemplate, context);
updateNodeTypeProperties(nestedServiceTemplate, globalSubstitutionServiceTemplate,
- indexedNewNestedNodeTypeId);
+ indexedNewNestedNodeTypeId);
+ //addComputeNodeTypeToGlobalST();
+
}
private void updateNodeTypeProperties(ServiceTemplate nestedServiceTemplate,
@@ -484,10 +506,12 @@ public class UnifiedCompositionService {
String nodeTypeId) {
ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
Map<String, PropertyDefinition> nodeTypePropertiesDefinition =
- toscaAnalyzerService.manageSubstitutionNodeTypeProperties(nestedServiceTemplate);
+ toscaAnalyzerService.manageSubstitutionNodeTypeProperties(nestedServiceTemplate);
NodeType nestedNodeType =
- DataModelUtil.getNodeType(globalSubstitutionServiceTemplate, nodeTypeId);
+ DataModelUtil.getNodeType(globalSubstitutionServiceTemplate, nodeTypeId);
nestedNodeType.setProperties(nodeTypePropertiesDefinition);
+ addComputeNodeTypeToGlobalST(nestedServiceTemplate.getNode_types().keySet().iterator().next()
+ , nestedServiceTemplate, globalSubstitutionServiceTemplate, nestedNodeType);
}
private String updateNodeTypeId(String nodeTypeId, String newNestedNodeTypeId,
@@ -496,17 +520,17 @@ public class UnifiedCompositionService {
ServiceTemplate globalSubstitutionServiceTemplate,
TranslationContext context) {
String indexedNewNestedNodeTypeId =
- handleNestedNodeTypeInGlobalSubstitutionTemplate(nodeTypeId, newNestedNodeTypeId,
- globalSubstitutionServiceTemplate, context);
+ handleNestedNodeTypeInGlobalSubstitutionTemplate(nodeTypeId, newNestedNodeTypeId,
+ globalSubstitutionServiceTemplate, context);
handleSubstitutionMappingInNestedServiceTemplate(indexedNewNestedNodeTypeId,
- nestedServiceTemplate, context);
+ nestedServiceTemplate, context);
context
- .updateHandledComputeType(
- ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
- ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate),
- newNestedNodeTypeId);
+ .updateHandledComputeType(
+ ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
+ ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate),
+ newNestedNodeTypeId);
return indexedNewNestedNodeTypeId;
}
@@ -515,23 +539,23 @@ public class UnifiedCompositionService {
ServiceTemplate globalSubstitutionServiceTemplate,
TranslationContext context) {
String indexedNodeType =
- getIndexedGlobalNodeTypeId(newNestedNodeTypeId, context);
+ getIndexedGlobalNodeTypeId(newNestedNodeTypeId, context);
context.updateUsedTimesForNestedComputeNodeType(
- ToscaUtil.getServiceTemplateFileName(globalSubstitutionServiceTemplate),
- newNestedNodeTypeId);
+ ToscaUtil.getServiceTemplateFileName(globalSubstitutionServiceTemplate),
+ newNestedNodeTypeId);
handleNestedNodeTypesInGlobalSubstituteServiceTemplate(nodeTypeId, indexedNodeType,
- globalSubstitutionServiceTemplate, context);
+ globalSubstitutionServiceTemplate, context);
return indexedNodeType;
}
private String getIndexedGlobalNodeTypeId(String newNestedNodeTypeId,
TranslationContext context) {
int globalNodeTypeIndex =
- context.getGlobalNodeTypeIndex(
- ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME),
- newNestedNodeTypeId);
+ context.getGlobalNodeTypeIndex(
+ ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME),
+ newNestedNodeTypeId);
return globalNodeTypeIndex > 0 ? newNestedNodeTypeId + "_"
- + String.valueOf(globalNodeTypeIndex) : newNestedNodeTypeId;
+ + String.valueOf(globalNodeTypeIndex) : newNestedNodeTypeId;
}
private void updateUnifiedNestedTemplates(ServiceTemplate mainServiceTemplate,
@@ -540,13 +564,13 @@ public class UnifiedCompositionService {
TranslationContext context) {
NestedTemplateConsolidationData nestedTemplateConsolidationData =
- unifiedCompositionData.getNestedTemplateConsolidationData();
+ unifiedCompositionData.getNestedTemplateConsolidationData();
if (Objects.isNull(nestedTemplateConsolidationData)) {
return;
}
handleNestedNodeTemplateInMainServiceTemplate(
- nestedTemplateConsolidationData.getNodeTemplateId(), mainServiceTemplate,
- nestedServiceTemplate, context);
+ nestedTemplateConsolidationData.getNodeTemplateId(), mainServiceTemplate,
+ nestedServiceTemplate, context);
}
@@ -564,11 +588,11 @@ public class UnifiedCompositionService {
TranslationContext context) {
updNestedCompositionNodesConnectedInConnectivity(serviceTemplate, unifiedCompositionData,
- context);
+ context);
updNestedCompositionNodesGetAttrInConnectivity(serviceTemplate, unifiedCompositionData,
- context);
+ context);
updNestedCompositionOutputParamGetAttrInConnectivity(serviceTemplate,
- unifiedCompositionData, context);
+ unifiedCompositionData, context);
}
@@ -583,21 +607,21 @@ public class UnifiedCompositionService {
UnifiedCompositionData unifiedCompositionData,
TranslationContext context) {
EntityConsolidationData entityConsolidationData =
- unifiedCompositionData.getNestedTemplateConsolidationData();
+ unifiedCompositionData.getNestedTemplateConsolidationData();
updateHeatStackGroupNestedComposition(serviceTemplate, entityConsolidationData, context);
}
public void handleComplexVfcType(ServiceTemplate serviceTemplate, TranslationContext context) {
SubstitutionMapping substitution_mappings =
- serviceTemplate.getTopology_template().getSubstitution_mappings();
+ serviceTemplate.getTopology_template().getSubstitution_mappings();
if (Objects.isNull(substitution_mappings)) {
return;
}
ServiceTemplate globalSubstitutionServiceTemplate =
- context.getGlobalSubstitutionServiceTemplate();
+ context.getGlobalSubstitutionServiceTemplate();
String substitutionNT = substitution_mappings.getNode_type();
if (globalSubstitutionServiceTemplate.getNode_types().containsKey(substitutionNT)) {
@@ -607,36 +631,37 @@ public class UnifiedCompositionService {
}
}
+
protected void updNodesConnectedOutConnectivity(ServiceTemplate serviceTemplate,
List<UnifiedCompositionData>
- unifiedCompositionDataList,
+ unifiedCompositionDataList,
TranslationContext context) {
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
- .getComputeTemplateConsolidationData();
+ .getComputeTemplateConsolidationData();
//Add requirements in the abstract node template for nodes connected out for computes
String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ computeTemplateConsolidationData.getNodeTemplateId());
Map<String, List<RequirementAssignmentData>> computeNodesConnectedOut =
- computeTemplateConsolidationData.getNodesConnectedOut();
+ computeTemplateConsolidationData.getNodesConnectedOut();
if (computeNodesConnectedOut != null) {
updateRequirementInAbstractNodeTemplate(serviceTemplate, computeTemplateConsolidationData,
- newComputeNodeTemplateId, computeNodesConnectedOut, context);
+ newComputeNodeTemplateId, computeNodesConnectedOut, context);
}
String computeType = getComputeTypeSuffix(serviceTemplate, computeTemplateConsolidationData
- .getNodeTemplateId());
+ .getNodeTemplateId());
//Add requirements in the abstract node template for nodes connected out for ports
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(unifiedCompositionData);
+ getPortTemplateConsolidationDataList(unifiedCompositionData);
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
String newPortNodeTemplateId = getNewPortNodeTemplateId(portTemplateConsolidationData
- .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
+ .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
Map<String, List<RequirementAssignmentData>> portNodesConnectedOut =
- portTemplateConsolidationData.getNodesConnectedOut();
+ portTemplateConsolidationData.getNodesConnectedOut();
if (portNodesConnectedOut != null) {
updateRequirementInAbstractNodeTemplate(serviceTemplate, portTemplateConsolidationData,
- newPortNodeTemplateId, portNodesConnectedOut, context);
+ newPortNodeTemplateId, portNodesConnectedOut, context);
}
}
}
@@ -644,28 +669,28 @@ public class UnifiedCompositionService {
protected void updNodesConnectedInConnectivity(ServiceTemplate serviceTemplate,
List<UnifiedCompositionData>
- unifiedCompositionDataList,
+ unifiedCompositionDataList,
TranslationContext context) {
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
- .getComputeTemplateConsolidationData();
+ .getComputeTemplateConsolidationData();
//Update requirements in the node template which pointing to the computes
String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ computeTemplateConsolidationData.getNodeTemplateId());
updNodesConnectedInConnectivity(serviceTemplate, computeTemplateConsolidationData,
- newComputeNodeTemplateId, context, false);
+ newComputeNodeTemplateId, context, false);
String computeType = getComputeTypeSuffix(serviceTemplate, computeTemplateConsolidationData
- .getNodeTemplateId());
+ .getNodeTemplateId());
//Update requirements in the node template which pointing to the ports
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(unifiedCompositionData);
+ getPortTemplateConsolidationDataList(unifiedCompositionData);
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
String newPortNodeTemplateId = getNewPortNodeTemplateId(portTemplateConsolidationData
- .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
+ .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
updNodesConnectedInConnectivity(serviceTemplate, portTemplateConsolidationData,
- newPortNodeTemplateId, context, false);
+ newPortNodeTemplateId, context, false);
}
}
}
@@ -676,19 +701,19 @@ public class UnifiedCompositionService {
TranslationContext context,
boolean isNested) {
Map<String, List<RequirementAssignmentData>> nodesConnectedIn =
- entityConsolidationData.getNodesConnectedIn();
+ entityConsolidationData.getNodesConnectedIn();
if (nodesConnectedIn == null) {
//No nodes connected in info
return;
}
for (Map.Entry<String, List<RequirementAssignmentData>> entry : nodesConnectedIn
- .entrySet()) {
+ .entrySet()) {
List<RequirementAssignmentData> requirementAssignmentDataList = entry.getValue();
for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList) {
RequirementAssignment requirementAssignment = requirementAssignmentData
- .getRequirementAssignment();
+ .getRequirementAssignment();
if (!requirementAssignment.getNode().equals(entityConsolidationData
- .getNodeTemplateId())) {
+ .getNodeTemplateId())) {
//The requirement assignment target node should be the one which we are handling in the
//consolidation object
continue;
@@ -696,10 +721,10 @@ public class UnifiedCompositionService {
//Update the requirement assignment object in the original node template
if (isNested) {
updateRequirementForNestedCompositionNodesConnectedIn(serviceTemplate,
- requirementAssignmentData, entityConsolidationData, newNodeTemplateId, context);
+ requirementAssignmentData, entityConsolidationData, newNodeTemplateId, context);
} else {
updateRequirementForNodesConnectedIn(serviceTemplate, requirementAssignmentData,
- entityConsolidationData, entry.getKey(), newNodeTemplateId, context);
+ entityConsolidationData, entry.getKey(), newNodeTemplateId, context);
}
}
@@ -707,76 +732,76 @@ public class UnifiedCompositionService {
}
protected void updNestedCompositionNodesConnectedInConnectivity(
- ServiceTemplate serviceTemplate,
- UnifiedCompositionData unifiedCompositionData,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ UnifiedCompositionData unifiedCompositionData,
+ TranslationContext context) {
NestedTemplateConsolidationData nestedTemplateConsolidationData = unifiedCompositionData
- .getNestedTemplateConsolidationData();
+ .getNestedTemplateConsolidationData();
//Update requirements in the node template which pointing to the nested nodes
String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
- serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
+ serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
newNestedNodeTemplateId.ifPresent(
- newNestedNodeTemplateIdVal -> updNodesConnectedInConnectivity(serviceTemplate,
- nestedTemplateConsolidationData,
- newNestedNodeTemplateIdVal, context, true));
+ newNestedNodeTemplateIdVal -> updNodesConnectedInConnectivity(serviceTemplate,
+ nestedTemplateConsolidationData,
+ newNestedNodeTemplateIdVal, context, true));
}
protected void updVolumeConnectivity(ServiceTemplate serviceTemplate,
List<UnifiedCompositionData>
- unifiedCompositionDataList,
+ unifiedCompositionDataList,
TranslationContext context) {
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
- .getComputeTemplateConsolidationData();
+ .getComputeTemplateConsolidationData();
//Add requirements in the abstract node template for compute volumes
String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ computeTemplateConsolidationData.getNodeTemplateId());
Map<String, List<RequirementAssignmentData>> computeVolumes =
- computeTemplateConsolidationData.getVolumes();
+ computeTemplateConsolidationData.getVolumes();
if (computeVolumes != null) {
updateRequirementInAbstractNodeTemplate(serviceTemplate, computeTemplateConsolidationData,
- newComputeNodeTemplateId, computeVolumes, context);
+ newComputeNodeTemplateId, computeVolumes, context);
}
}
}
protected void updGroupsConnectivity(ServiceTemplate serviceTemplate,
List<UnifiedCompositionData>
- unifiedCompositionDataList,
+ unifiedCompositionDataList,
TranslationContext context) {
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
- .getComputeTemplateConsolidationData();
+ .getComputeTemplateConsolidationData();
//Add requirements in the abstract node template for nodes connected in for computes
String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ computeTemplateConsolidationData.getNodeTemplateId());
updGroupsConnectivity(serviceTemplate, computeTemplateConsolidationData, context);
String computeType = getComputeTypeSuffix(serviceTemplate, computeTemplateConsolidationData
- .getNodeTemplateId());
+ .getNodeTemplateId());
//Add requirements in the abstract node template for nodes connected in for ports
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(unifiedCompositionData);
+ getPortTemplateConsolidationDataList(unifiedCompositionData);
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
String newPortNodeTemplateId = getNewPortNodeTemplateId(portTemplateConsolidationData
- .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
+ .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
updGroupsConnectivity(serviceTemplate, portTemplateConsolidationData, context);
}
}
}
private void updGroupsConnectivity(ServiceTemplate serviceTemplate, EntityConsolidationData
- entityConsolidationData, TranslationContext context) {
+ entityConsolidationData, TranslationContext context) {
List<String> groupIds = entityConsolidationData.getGroupIds();
if (groupIds == null) {
return;
}
String oldNodeTemplateId = entityConsolidationData.getNodeTemplateId();
String abstractNodeTemplateId = context.getUnifiedAbstractNodeTemplateId(
- serviceTemplate, entityConsolidationData.getNodeTemplateId());
+ serviceTemplate, entityConsolidationData.getNodeTemplateId());
Map<String, GroupDefinition> groups = serviceTemplate.getTopology_template().getGroups();
if (groups != null) {
for (String groupId : groupIds) {
@@ -797,194 +822,194 @@ public class UnifiedCompositionService {
}
protected void updOutputParamGetAttrInConnectivity(
- ServiceTemplate serviceTemplate, List<UnifiedCompositionData> unifiedComposotionDataList,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate, List<UnifiedCompositionData> unifiedComposotionDataList,
+ TranslationContext context) {
for (UnifiedCompositionData unifiedCompositionData : unifiedComposotionDataList) {
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- unifiedCompositionData.getComputeTemplateConsolidationData();
+ unifiedCompositionData.getComputeTemplateConsolidationData();
String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ computeTemplateConsolidationData.getNodeTemplateId());
updOutputParamGetAttrInConnectivity(serviceTemplate, computeTemplateConsolidationData,
- computeTemplateConsolidationData.getNodeTemplateId(), newComputeNodeTemplateId,
- context, false);
+ computeTemplateConsolidationData.getNodeTemplateId(), newComputeNodeTemplateId,
+ context, false);
String computeType =
- getComputeTypeSuffix(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ getComputeTypeSuffix(serviceTemplate,
+ computeTemplateConsolidationData.getNodeTemplateId());
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(unifiedCompositionData);
+ getPortTemplateConsolidationDataList(unifiedCompositionData);
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
String newPortNodeTemplateId =
- getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(), computeType,
- computeTemplateConsolidationData);
+ getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(), computeType,
+ computeTemplateConsolidationData);
updOutputParamGetAttrInConnectivity(serviceTemplate, portTemplateConsolidationData,
- portTemplateConsolidationData.getNodeTemplateId(), newPortNodeTemplateId, context,
- false);
+ portTemplateConsolidationData.getNodeTemplateId(), newPortNodeTemplateId, context,
+ false);
}
}
}
protected void updNodesGetAttrInConnectivity(
- ServiceTemplate serviceTemplate,
- List<UnifiedCompositionData> unifiedComposotionDataList,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ List<UnifiedCompositionData> unifiedComposotionDataList,
+ TranslationContext context) {
Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType =
- getAllConsolidationNodeTemplateIdAndType(unifiedComposotionDataList);
+ getAllConsolidationNodeTemplateIdAndType(unifiedComposotionDataList);
for (UnifiedCompositionData unifiedCompositionData : unifiedComposotionDataList) {
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- unifiedCompositionData.getComputeTemplateConsolidationData();
+ unifiedCompositionData.getComputeTemplateConsolidationData();
String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ computeTemplateConsolidationData.getNodeTemplateId());
updNodeGetAttrInConnectivity(serviceTemplate, computeTemplateConsolidationData,
- computeTemplateConsolidationData.getNodeTemplateId(),
- newComputeNodeTemplateId, context, consolidationNodeTemplateIdAndType, false);
+ computeTemplateConsolidationData.getNodeTemplateId(),
+ newComputeNodeTemplateId, context, consolidationNodeTemplateIdAndType, false);
String computeType =
- getComputeTypeSuffix(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ getComputeTypeSuffix(serviceTemplate,
+ computeTemplateConsolidationData.getNodeTemplateId());
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(unifiedCompositionData);
+ getPortTemplateConsolidationDataList(unifiedCompositionData);
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
String newPotNodeTemplateId =
- getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(), computeType,
- computeTemplateConsolidationData);
+ getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(), computeType,
+ computeTemplateConsolidationData);
updNodeGetAttrInConnectivity(serviceTemplate, portTemplateConsolidationData,
- portTemplateConsolidationData.getNodeTemplateId(),
- newPotNodeTemplateId, context, consolidationNodeTemplateIdAndType, false);
+ portTemplateConsolidationData.getNodeTemplateId(),
+ newPotNodeTemplateId, context, consolidationNodeTemplateIdAndType, false);
}
}
}
protected void updNestedCompositionOutputParamGetAttrInConnectivity(
- ServiceTemplate serviceTemplate, UnifiedCompositionData unifiedCompositionData,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate, UnifiedCompositionData unifiedCompositionData,
+ TranslationContext context) {
NestedTemplateConsolidationData nestedTemplateConsolidationData =
- unifiedCompositionData.getNestedTemplateConsolidationData();
+ unifiedCompositionData.getNestedTemplateConsolidationData();
if (Objects.isNull(nestedTemplateConsolidationData)) {
return;
}
String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
- serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
+ serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
newNestedNodeTemplateId.ifPresent(
- newNestedNodeTemplateIdVal -> updOutputParamGetAttrInConnectivity(serviceTemplate,
- nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
- newNestedNodeTemplateIdVal, context, true));
+ newNestedNodeTemplateIdVal -> updOutputParamGetAttrInConnectivity(serviceTemplate,
+ nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
+ newNestedNodeTemplateIdVal, context, true));
}
protected void updNestedCompositionNodesGetAttrInConnectivity(
- ServiceTemplate serviceTemplate,
- UnifiedCompositionData unifiedCompositionData,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ UnifiedCompositionData unifiedCompositionData,
+ TranslationContext context) {
NestedTemplateConsolidationData nestedTemplateConsolidationData =
- unifiedCompositionData.getNestedTemplateConsolidationData();
+ unifiedCompositionData.getNestedTemplateConsolidationData();
if (Objects.isNull(nestedTemplateConsolidationData)) {
return;
}
String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
- serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
+ serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
newNestedNodeTemplateId.ifPresent(
- newNestedNodeTemplateIdVal -> updNodeGetAttrInConnectivity(serviceTemplate,
- nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
- newNestedNodeTemplateIdVal, context, null, true));
+ newNestedNodeTemplateIdVal -> updNodeGetAttrInConnectivity(serviceTemplate,
+ nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
+ newNestedNodeTemplateIdVal, context, null, true));
}
private void updateRequirementForNodesConnectedIn(
- ServiceTemplate serviceTemplate,
- RequirementAssignmentData requirementAssignmentData,
- EntityConsolidationData entityConsolidationData,
- String originalNodeTemplateId,
- String newNodeTemplateId,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ RequirementAssignmentData requirementAssignmentData,
+ EntityConsolidationData entityConsolidationData,
+ String originalNodeTemplateId,
+ String newNodeTemplateId,
+ TranslationContext context) {
ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
RequirementAssignment requirementAssignment = requirementAssignmentData
- .getRequirementAssignment();
+ .getRequirementAssignment();
String newAbstractUnifiedNodeTemplateId = context.getUnifiedAbstractNodeTemplateId(
- serviceTemplate, entityConsolidationData.getNodeTemplateId());
+ serviceTemplate, entityConsolidationData.getNodeTemplateId());
NodeTemplate abstractUnifiedNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
- newAbstractUnifiedNodeTemplateId);
+ newAbstractUnifiedNodeTemplateId);
Optional<String> newCapabilityId = getNewCapabilityForNodesConnectedIn(serviceTemplate,
- abstractUnifiedNodeTemplate, requirementAssignment, newNodeTemplateId, context);
+ abstractUnifiedNodeTemplate, requirementAssignment, newNodeTemplateId, context);
if (newCapabilityId.isPresent()) {
//Creating a copy of the requirement object and checking if it already exists in the
// original node template
RequirementAssignment requirementAssignmentCopy = (RequirementAssignment) getClonedObject(
- requirementAssignmentData.getRequirementAssignment(), RequirementAssignment.class);
+ requirementAssignmentData.getRequirementAssignment(), RequirementAssignment.class);
NodeTemplate originalNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
- originalNodeTemplateId);
+ originalNodeTemplateId);
requirementAssignmentCopy.setCapability(newCapabilityId.get());
requirementAssignmentCopy.setNode(newAbstractUnifiedNodeTemplateId);
if (!toscaAnalyzerService.isRequirementExistInNodeTemplate(originalNodeTemplate,
- requirementAssignmentData.getRequirementId(), requirementAssignmentCopy)) {
+ requirementAssignmentData.getRequirementId(), requirementAssignmentCopy)) {
//Update the existing requirement
requirementAssignmentData.getRequirementAssignment().setCapability(newCapabilityId
- .get());
+ .get());
requirementAssignmentData.getRequirementAssignment()
- .setNode(newAbstractUnifiedNodeTemplateId);
+ .setNode(newAbstractUnifiedNodeTemplateId);
} else {
//The updated requirement already exists in the node template so simply remove the
// current one
DataModelUtil.removeRequirementAssignment(originalNodeTemplate, requirementAssignmentData
- .getRequirementId(), requirementAssignmentData.getRequirementAssignment());
+ .getRequirementId(), requirementAssignmentData.getRequirementAssignment());
}
}
}
private void updateRequirementForNestedCompositionNodesConnectedIn(
- ServiceTemplate serviceTemplate,
- RequirementAssignmentData requirementAssignmentData,
- EntityConsolidationData entityConsolidationData,
- String newNodeTemplateId,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ RequirementAssignmentData requirementAssignmentData,
+ EntityConsolidationData entityConsolidationData,
+ String newNodeTemplateId,
+ TranslationContext context) {
ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
String newAbstractUnifiedNodeTemplateId = newNodeTemplateId;
RequirementAssignment requirementAssignment = requirementAssignmentData
- .getRequirementAssignment();
+ .getRequirementAssignment();
//Creating a copy of the requirement object and checking if it already exists in the
// original node template
RequirementAssignment requirementAssignmentCopy = (RequirementAssignment) getClonedObject(
- requirementAssignmentData.getRequirementAssignment(), RequirementAssignment.class);
+ requirementAssignmentData.getRequirementAssignment(), RequirementAssignment.class);
NodeTemplate unifiedAbstractNestedNodeTemplate = DataModelUtil
- .getNodeTemplate(serviceTemplate, newAbstractUnifiedNodeTemplateId);
+ .getNodeTemplate(serviceTemplate, newAbstractUnifiedNodeTemplateId);
requirementAssignmentCopy.setCapability(requirementAssignment.getCapability());
requirementAssignmentCopy.setNode(newAbstractUnifiedNodeTemplateId);
if (!toscaAnalyzerService.isRequirementExistInNodeTemplate(unifiedAbstractNestedNodeTemplate,
- requirementAssignmentData.getRequirementId(), requirementAssignmentCopy)) {
+ requirementAssignmentData.getRequirementId(), requirementAssignmentCopy)) {
//Update the existing requirement
requirementAssignmentData.getRequirementAssignment()
- .setNode(newAbstractUnifiedNodeTemplateId);
+ .setNode(newAbstractUnifiedNodeTemplateId);
} else {
//The updated requirement already exists in the node template so simply remove the
// current one
DataModelUtil.removeRequirementAssignment(unifiedAbstractNestedNodeTemplate,
- requirementAssignmentData.getRequirementId(), requirementAssignmentData
- .getRequirementAssignment());
+ requirementAssignmentData.getRequirementId(), requirementAssignmentData
+ .getRequirementAssignment());
}
}
private Optional<String> getNewCapabilityForNodesConnectedIn(ServiceTemplate serviceTemplate,
NodeTemplate unifiedNodeTemplate,
RequirementAssignment
- requirementAssignment,
+ requirementAssignment,
String newNodeTemplateId,
TranslationContext context) {
ServiceTemplate globalSubstitutionServiceTemplate =
- HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
+ HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
Map<String, NodeType> nodeTypes = globalSubstitutionServiceTemplate.getNode_types();
String unifiedNodeTemplateType = unifiedNodeTemplate.getType();
NodeType unifiedNodeType = nodeTypes.get(unifiedNodeTemplateType);
Map<String, CapabilityDefinition> abstractNodeTypeCapabilities = unifiedNodeType
- .getCapabilities();
+ .getCapabilities();
for (Map.Entry<String, CapabilityDefinition> entry : abstractNodeTypeCapabilities.entrySet()) {
String capabilityId = entry.getKey();
CapabilityDefinition capabilityDefinition = entry.getValue();
@@ -1002,18 +1027,18 @@ public class UnifiedCompositionService {
private void updateRequirementInAbstractNodeTemplate(ServiceTemplate serviceTemplate,
EntityConsolidationData
- entityConsolidationData,
+ entityConsolidationData,
String newNodeTemplateId,
Map<String, List<RequirementAssignmentData>>
- requirementAssignmentDataMap,
+ requirementAssignmentDataMap,
TranslationContext context) {
ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
for (Map.Entry<String, List<RequirementAssignmentData>> entry : requirementAssignmentDataMap
- .entrySet()) {
+ .entrySet()) {
String abstractNodeTemplateId = context.getUnifiedAbstractNodeTemplateId(
- serviceTemplate, entityConsolidationData.getNodeTemplateId());
+ serviceTemplate, entityConsolidationData.getNodeTemplateId());
NodeTemplate abstractNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
- abstractNodeTemplateId);
+ abstractNodeTemplateId);
if (abstractNodeTemplate == null) {
//The abstract node template is not found from id in the context
return;
@@ -1022,62 +1047,62 @@ public class UnifiedCompositionService {
for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList) {
String oldRequirementId = requirementAssignmentData.getRequirementId();
RequirementAssignment abstractRequirementAssignment = (RequirementAssignment)
- getClonedObject(requirementAssignmentData.getRequirementAssignment(),
- RequirementAssignment.class);
+ getClonedObject(requirementAssignmentData.getRequirementAssignment(),
+ RequirementAssignment.class);
String newRequirementId = oldRequirementId + "_" + newNodeTemplateId;
//Check if the requirement is not already present in the list of requirements of the
// abstract node template
if (!toscaAnalyzerService.isRequirementExistInNodeTemplate(abstractNodeTemplate,
- newRequirementId, abstractRequirementAssignment)) {
+ newRequirementId, abstractRequirementAssignment)) {
DataModelUtil.addRequirementAssignment(abstractNodeTemplate, newRequirementId,
- abstractRequirementAssignment);
+ abstractRequirementAssignment);
//Update the volume relationship template if required
updateVolumeRelationshipTemplate(serviceTemplate, abstractRequirementAssignment
- .getRelationship(), context);
+ .getRelationship(), context);
}
}
}
}
private NodeTemplate getAbstractNodeTemplate(
- ServiceTemplate serviceTemplate,
- UnifiedCompositionEntity unifiedCompositionEntity,
- ComputeTemplateConsolidationData computeTemplateConsolidationData,
- PortTemplateConsolidationData portTemplateConsolidationData,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ UnifiedCompositionEntity unifiedCompositionEntity,
+ ComputeTemplateConsolidationData computeTemplateConsolidationData,
+ PortTemplateConsolidationData portTemplateConsolidationData,
+ TranslationContext context) {
String abstractNodeTemplateId =
- getAbstractNodeTemplateId(serviceTemplate, unifiedCompositionEntity,
- computeTemplateConsolidationData, portTemplateConsolidationData, context);
+ getAbstractNodeTemplateId(serviceTemplate, unifiedCompositionEntity,
+ computeTemplateConsolidationData, portTemplateConsolidationData, context);
return DataModelUtil.getNodeTemplate(serviceTemplate,
- abstractNodeTemplateId);
+ abstractNodeTemplateId);
}
private String getAbstractNodeTemplateId(
- ServiceTemplate serviceTemplate,
- UnifiedCompositionEntity unifiedCompositionEntity,
- ComputeTemplateConsolidationData computeTemplateConsolidationData,
- PortTemplateConsolidationData portTemplateConsolidationData,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ UnifiedCompositionEntity unifiedCompositionEntity,
+ ComputeTemplateConsolidationData computeTemplateConsolidationData,
+ PortTemplateConsolidationData portTemplateConsolidationData,
+ TranslationContext context) {
switch (unifiedCompositionEntity) {
case Compute:
return context.getUnifiedAbstractNodeTemplateId(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ computeTemplateConsolidationData.getNodeTemplateId());
case Port:
return context.getUnifiedAbstractNodeTemplateId(serviceTemplate,
- portTemplateConsolidationData.getNodeTemplateId());
+ portTemplateConsolidationData.getNodeTemplateId());
default:
return null;
}
}
private void updNodeGetAttrInConnectivity(
- ServiceTemplate serviceTemplate,
- EntityConsolidationData entityConsolidationData,
- String oldNodeTemplateId, String newNodeTemplateId,
- TranslationContext context,
- Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType,
- boolean isNested) {
+ ServiceTemplate serviceTemplate,
+ EntityConsolidationData entityConsolidationData,
+ String oldNodeTemplateId, String newNodeTemplateId,
+ TranslationContext context,
+ Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType,
+ boolean isNested) {
Map<String, List<GetAttrFuncData>> nodesGetAttrIn = entityConsolidationData.getNodesGetAttrIn();
if (MapUtils.isEmpty(nodesGetAttrIn)) {
return;
@@ -1085,25 +1110,25 @@ public class UnifiedCompositionService {
for (String sourceNodeTemplateId : nodesGetAttrIn.keySet()) {
NodeTemplate sourceNodeTemplate =
- DataModelUtil.getNodeTemplate(serviceTemplate, sourceNodeTemplateId);
+ DataModelUtil.getNodeTemplate(serviceTemplate, sourceNodeTemplateId);
if (!isNested && consolidationNodeTemplateIdAndType.keySet().contains(sourceNodeTemplateId)) {
continue;
}
List<GetAttrFuncData> getAttrFuncDataList = nodesGetAttrIn.get(sourceNodeTemplateId);
for (GetAttrFuncData getAttrFuncData : getAttrFuncDataList) {
Object propertyValue =
- DataModelUtil.getPropertyValue(sourceNodeTemplate, getAttrFuncData.getFieldName());
+ DataModelUtil.getPropertyValue(sourceNodeTemplate, getAttrFuncData.getFieldName());
String newAttrName = null;
String newGetAttrAbstractNodeTemplateId = newNodeTemplateId;
if (!isNested) {
newGetAttrAbstractNodeTemplateId =
- context.getUnifiedAbstractNodeTemplateId(serviceTemplate, oldNodeTemplateId);
+ context.getUnifiedAbstractNodeTemplateId(serviceTemplate, oldNodeTemplateId);
newAttrName = getNewSubstitutionOutputParameterId(newNodeTemplateId, getAttrFuncData
- .getAttributeName());
+ .getAttributeName());
}
List<List<Object>> getAttrFuncValueList = extractGetAttrFunction(propertyValue);
updateGetAttrValue(oldNodeTemplateId, getAttrFuncData, newGetAttrAbstractNodeTemplateId,
- newAttrName, getAttrFuncValueList, isNested);
+ newAttrName, getAttrFuncValueList, isNested);
}
}
}
@@ -1113,7 +1138,7 @@ public class UnifiedCompositionService {
List<List<Object>> getAttrFuncValueList, boolean isNested) {
for (List<Object> getAttrFuncValue : getAttrFuncValueList) {
if (oldNodeTemplateId.equals(getAttrFuncValue.get(0))
- && getAttrFuncData.getAttributeName().equals(getAttrFuncValue.get(1))) {
+ && getAttrFuncData.getAttributeName().equals(getAttrFuncValue.get(1))) {
getAttrFuncValue.set(0, newNodeTemplateId);
if (!isNested) {
getAttrFuncValue.set(1, newAttrName);
@@ -1127,7 +1152,7 @@ public class UnifiedCompositionService {
String nodeTypeId,
Integer index) {
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- unifiedCompositionData.getComputeTemplateConsolidationData();
+ unifiedCompositionData.getComputeTemplateConsolidationData();
String computeType = getComputeTypeSuffix(nodeTypeId);
String templateName = "Nested_" + computeType;
if (Objects.nonNull(index)) {
@@ -1139,7 +1164,7 @@ public class UnifiedCompositionService {
private String getComputeTypeSuffix(ServiceTemplate serviceTemplate,
String computeNodeTemplateId) {
NodeTemplate computeNodeTemplate =
- DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
+ DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
return getComputeTypeSuffix(computeNodeTemplate.getType());
}
@@ -1160,26 +1185,26 @@ public class UnifiedCompositionService {
TranslationContext context,
boolean isNested) {
List<GetAttrFuncData> outputParametersGetAttrIn =
- entityConsolidationData.getOutputParametersGetAttrIn();
+ entityConsolidationData.getOutputParametersGetAttrIn();
if (CollectionUtils.isEmpty(outputParametersGetAttrIn)) {
return;
}
for (GetAttrFuncData getAttrFuncData : outputParametersGetAttrIn) {
Object outputParamValue =
- DataModelUtil.getOuputParameter(serviceTemplate, getAttrFuncData.getFieldName())
- .getValue();
+ DataModelUtil.getOuputParameter(serviceTemplate, getAttrFuncData.getFieldName())
+ .getValue();
String newAttrName = null;
String newGetAttrAbstractNodeTemplateId = newNodeTemplateId;
if (!isNested) {
newGetAttrAbstractNodeTemplateId =
- context.getUnifiedAbstractNodeTemplateId(serviceTemplate, oldNodeTemplateId);
+ context.getUnifiedAbstractNodeTemplateId(serviceTemplate, oldNodeTemplateId);
newAttrName = getNewSubstitutionOutputParameterId(newNodeTemplateId, getAttrFuncData
- .getAttributeName());
+ .getAttributeName());
}
List<List<Object>> getAttrFuncValueList = extractGetAttrFunction(outputParamValue);
updateGetAttrValue(oldNodeTemplateId, getAttrFuncData, newGetAttrAbstractNodeTemplateId,
- newAttrName,
- getAttrFuncValueList, isNested);
+ newAttrName,
+ getAttrFuncValueList, isNested);
}
}
@@ -1191,7 +1216,7 @@ public class UnifiedCompositionService {
if (valueObject instanceof Map) {
if (((Map) valueObject).containsKey(ToscaFunctions.GET_ATTRIBUTE.getDisplayName())) {
getAttrValueList.add(
- (List<Object>) ((Map) valueObject).get(ToscaFunctions.GET_ATTRIBUTE.getDisplayName()));
+ (List<Object>) ((Map) valueObject).get(ToscaFunctions.GET_ATTRIBUTE.getDisplayName()));
}
for (Object key : ((Map) valueObject).keySet()) {
@@ -1212,9 +1237,16 @@ public class UnifiedCompositionService {
if (((Map) valueObject).containsKey(toscaFunction.getDisplayName())) {
return true;
}
- Map.Entry<String, Object> functionMapEntry =
- (Map.Entry<String, Object>) ((Map) valueObject).entrySet().iterator().next();
- return isIncludeToscaFunc(functionMapEntry.getValue(), toscaFunction);
+
+ Set<Map.Entry<String, Object>> entries = ((Map<String, Object>) valueObject).entrySet();
+ for(Map.Entry<String, Object> valueObjectEntry : entries){
+ if(isIncludeToscaFunc(valueObjectEntry.getValue(), toscaFunction)){
+ return true;
+ }
+ }
+// Map.Entry<String, Object> functionMapEntry =
+// (Map.Entry<String, Object>) ((Map) valueObject).entrySet().iterator().next();
+// return isIncludeToscaFunc(functionMapEntry.getValue(), toscaFunction);
} else if (valueObject instanceof List) {
for (Object valueEntity : (List) valueObject) {
@@ -1232,41 +1264,41 @@ public class UnifiedCompositionService {
String computeNodeType, TranslationContext context) {
createOutputParametersForCompute(serviceTemplate, substitutionServiceTemplate,
- unifiedCompositionDataList, context);
+ unifiedCompositionDataList, context);
createOutputParameterForPorts(serviceTemplate, substitutionServiceTemplate,
- unifiedCompositionDataList, computeNodeType, context);
+ unifiedCompositionDataList, computeNodeType, context);
}
private void createOutputParameterForPorts(
- ServiceTemplate serviceTemplate,
- ServiceTemplate substitutionServiceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList,
- String connectedComputeNodeType,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ ServiceTemplate substitutionServiceTemplate,
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ String connectedComputeNodeType,
+ TranslationContext context) {
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(unifiedCompositionData);
+ getPortTemplateConsolidationDataList(unifiedCompositionData);
if (CollectionUtils.isEmpty(portTemplateConsolidationDataList)) {
return;
}
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
String newPortNodeTemplateId =
- getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(),
- connectedComputeNodeType,
- unifiedCompositionData.getComputeTemplateConsolidationData());
+ getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(),
+ connectedComputeNodeType,
+ unifiedCompositionData.getComputeTemplateConsolidationData());
addOutputParameters(portTemplateConsolidationData, newPortNodeTemplateId,
- serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
+ serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
}
}
}
//The ID should be <vm_type>_<port_type> or <vm_type>_<portNodeTemplateId>
private String getNewPortNodeTemplateId(
- String portNodeTemplateId,
- String connectedComputeNodeType,
- ComputeTemplateConsolidationData computeTemplateConsolidationData) {
+ String portNodeTemplateId,
+ String connectedComputeNodeType,
+ ComputeTemplateConsolidationData computeTemplateConsolidationData) {
StringBuilder newPortNodeTemplateId = new StringBuilder();
String portType = ConsolidationDataUtil.getPortType(portNodeTemplateId);
@@ -1282,20 +1314,20 @@ public class UnifiedCompositionService {
}
private void createOutputParametersForCompute(
- ServiceTemplate serviceTemplate,
- ServiceTemplate substitutionServiceTemplate,
- List<UnifiedCompositionData>
- unifiedCompositionDataList,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ ServiceTemplate substitutionServiceTemplate,
+ List<UnifiedCompositionData>
+ unifiedCompositionDataList,
+ TranslationContext context) {
List<EntityConsolidationData> computeConsolidationDataList =
- getComputeConsolidationDataList(unifiedCompositionDataList);
+ getComputeConsolidationDataList(unifiedCompositionDataList);
for (EntityConsolidationData computeTemplateConsolidationData : computeConsolidationDataList) {
String newComputeNodeTemplateId =
- getNewComputeNodeTemplateId(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ getNewComputeNodeTemplateId(serviceTemplate,
+ computeTemplateConsolidationData.getNodeTemplateId());
addOutputParameters(computeTemplateConsolidationData, newComputeNodeTemplateId,
- serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
+ serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
}
}
@@ -1306,10 +1338,10 @@ public class UnifiedCompositionService {
List<UnifiedCompositionData> unifiedCompositionDataList,
TranslationContext context) {
handleNodesGetAttrIn(entityConsolidationData, newNodeTemplateId, serviceTemplate,
- substitutionServiceTemplate, unifiedCompositionDataList, context);
+ substitutionServiceTemplate, unifiedCompositionDataList, context);
handleOutputParamGetAttrIn(entityConsolidationData, newNodeTemplateId, serviceTemplate,
- substitutionServiceTemplate, context);
+ substitutionServiceTemplate, context);
}
private void handleOutputParamGetAttrIn(EntityConsolidationData entityConsolidationData,
@@ -1318,11 +1350,11 @@ public class UnifiedCompositionService {
ServiceTemplate substitutionServiceTemplate,
TranslationContext context) {
List<GetAttrFuncData> outputParametersGetAttrIn =
- entityConsolidationData.getOutputParametersGetAttrIn();
+ entityConsolidationData.getOutputParametersGetAttrIn();
if (!CollectionUtils.isEmpty(outputParametersGetAttrIn)) {
for (GetAttrFuncData getAttrFuncData : outputParametersGetAttrIn) {
createAndAddOutputParameter(entityConsolidationData, newNodeTemplateId,
- substitutionServiceTemplate, getAttrFuncData, context);
+ substitutionServiceTemplate, getAttrFuncData, context);
}
}
}
@@ -1337,13 +1369,13 @@ public class UnifiedCompositionService {
if (!MapUtils.isEmpty(getAttrIn)) {
Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType =
- getAllConsolidationNodeTemplateIdAndType(unifiedCompositionDataList);
+ getAllConsolidationNodeTemplateIdAndType(unifiedCompositionDataList);
for (String sourceNodeTemplateId : getAttrIn.keySet()) {
if (!consolidationNodeTemplateIdAndType.keySet().contains(sourceNodeTemplateId)) {
List<GetAttrFuncData> getAttrFuncDataList = getAttrIn.get(sourceNodeTemplateId);
for (GetAttrFuncData getAttrFuncData : getAttrFuncDataList) {
createAndAddOutputParameter(entityConsolidationData, newNodeTemplateId,
- substitutionServiceTemplate, getAttrFuncData, context);
+ substitutionServiceTemplate, getAttrFuncData, context);
}
}
}
@@ -1363,10 +1395,10 @@ public class UnifiedCompositionService {
ParameterDefinition outputParameter = new ParameterDefinition();
outputParameter.setValue(parameterValue);
setOutputParameterType(substitutionServiceTemplate, newNodeTemplateId, getAttrFuncData
- .getAttributeName(), outputParameter, context);
+ .getAttributeName(), outputParameter, context);
DataModelUtil.addOutputParameterToTopologyTemplate(substitutionServiceTemplate,
- getNewSubstitutionOutputParameterId(newNodeTemplateId, getAttrFuncData.getAttributeName()),
- outputParameter);
+ getNewSubstitutionOutputParameterId(newNodeTemplateId, getAttrFuncData.getAttributeName()),
+ outputParameter);
}
private void setOutputParameterType(ServiceTemplate substitutionServiceTemplate,
@@ -1375,16 +1407,16 @@ public class UnifiedCompositionService {
ParameterDefinition outputParameter,
TranslationContext context) {
NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(substitutionServiceTemplate,
- newNodeTemplateId);
+ newNodeTemplateId);
//Get the type and entry schema of the output parameter from the node type flat hierarchy
String outputParameterType = null;
EntrySchema outputParameterEntrySchema = null;
NodeType nodeTypeWithFlatHierarchy =
- HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(),
- substitutionServiceTemplate, context);
+ HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(),
+ substitutionServiceTemplate, context);
//Check if the parameter is present in the attributes
AttributeDefinition outputParameterDefinitionFromAttributes =
- getOutputParameterDefinitionFromAttributes(nodeTypeWithFlatHierarchy, outputParameterName);
+ getOutputParameterDefinitionFromAttributes(nodeTypeWithFlatHierarchy, outputParameterName);
if (Objects.nonNull(outputParameterDefinitionFromAttributes)) {
outputParameterType = outputParameterDefinitionFromAttributes.getType();
outputParameterEntrySchema = outputParameterDefinitionFromAttributes.getEntry_schema();
@@ -1393,7 +1425,7 @@ public class UnifiedCompositionService {
// properties and global types are in sync. Ideally the parameter should be found in either
// properties or attributes collected from global types
PropertyDefinition outputParameterDefinitionFromProperties =
- nodeTypeWithFlatHierarchy.getProperties().get(outputParameterName);
+ nodeTypeWithFlatHierarchy.getProperties().get(outputParameterName);
outputParameterType = outputParameterDefinitionFromProperties.getType();
outputParameterEntrySchema = outputParameterDefinitionFromProperties.getEntry_schema();
}
@@ -1407,21 +1439,21 @@ public class UnifiedCompositionService {
String inputParameterName,
TranslationContext context) {
NodeType nodeTypeWithFlatHierarchy =
- HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(),
- serviceTemplate, context);
+ HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(),
+ serviceTemplate, context);
String parameterType = nodeTypeWithFlatHierarchy.getProperties()
- .get(inputParameterName).getType();
+ .get(inputParameterName).getType();
return getUnifiedInputParameterType(parameterType);
}
private AttributeDefinition getOutputParameterDefinitionFromAttributes(NodeType
- nodeTypeWithFlatHierarchy,
+ nodeTypeWithFlatHierarchy,
String outputParameterName) {
AttributeDefinition outputParameterDefinition = null;
if ((Objects.nonNull(nodeTypeWithFlatHierarchy.getAttributes()))
- && (nodeTypeWithFlatHierarchy.getAttributes().containsKey(outputParameterName))) {
+ && (nodeTypeWithFlatHierarchy.getAttributes().containsKey(outputParameterName))) {
outputParameterDefinition =
- nodeTypeWithFlatHierarchy.getAttributes().get(outputParameterName);
+ nodeTypeWithFlatHierarchy.getAttributes().get(outputParameterName);
}
return outputParameterDefinition;
}
@@ -1430,17 +1462,17 @@ public class UnifiedCompositionService {
String unifiedInputParameterType = null;
if (Objects.nonNull(parameterType)) {
if (parameterType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
- || parameterType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
- || parameterType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
- || parameterType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName())
- || parameterType.equalsIgnoreCase(PropertyType.TIMESTAMP.getDisplayName())
- || parameterType.equalsIgnoreCase(PropertyType.NULL.getDisplayName())
- || parameterType.equalsIgnoreCase(PropertyType.SCALAR_UNIT_SIZE.getDisplayName())
- || parameterType.equalsIgnoreCase(PropertyType.SCALAR_UNIT_FREQUENCY.getDisplayName())) {
+ || parameterType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
+ || parameterType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
+ || parameterType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName())
+ || parameterType.equalsIgnoreCase(PropertyType.TIMESTAMP.getDisplayName())
+ || parameterType.equalsIgnoreCase(PropertyType.NULL.getDisplayName())
+ || parameterType.equalsIgnoreCase(PropertyType.SCALAR_UNIT_SIZE.getDisplayName())
+ || parameterType.equalsIgnoreCase(PropertyType.SCALAR_UNIT_FREQUENCY.getDisplayName())) {
unifiedInputParameterType = parameterType.toLowerCase();
} else if (parameterType.equalsIgnoreCase(PropertyType.MAP.getDisplayName())
- || parameterType.equalsIgnoreCase(PropertyType.LIST.getDisplayName())
- || parameterType.equalsIgnoreCase(PropertyTypeExt.JSON.getDisplayName())) {
+ || parameterType.equalsIgnoreCase(PropertyType.LIST.getDisplayName())
+ || parameterType.equalsIgnoreCase(PropertyTypeExt.JSON.getDisplayName())) {
unifiedInputParameterType = PropertyTypeExt.JSON.getDisplayName();
} else {
unifiedInputParameterType = parameterType;
@@ -1455,26 +1487,26 @@ public class UnifiedCompositionService {
}
private void addUnifiedSubstitionData(TranslationContext context, ServiceTemplate
- serviceTemplate, List<UnifiedCompositionData> unifiedCompositionDataList, String
- substituteNodeTemplateId) {
+ serviceTemplate, List<UnifiedCompositionData> unifiedCompositionDataList, String
+ substituteNodeTemplateId) {
String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
//Add compute node template mapping information
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- unifiedCompositionData.getComputeTemplateConsolidationData();
+ unifiedCompositionData.getComputeTemplateConsolidationData();
String computeNodeTemplateId = computeTemplateConsolidationData.getNodeTemplateId();
context.addUnifiedSubstitutionData(serviceTemplateFileName, computeNodeTemplateId,
- substituteNodeTemplateId);
+ substituteNodeTemplateId);
//Add Port template mapping information
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(unifiedCompositionData);
+ getPortTemplateConsolidationDataList(unifiedCompositionData);
if (CollectionUtils.isNotEmpty(portTemplateConsolidationDataList)) {
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
String oldPortNodeTemplateId = portTemplateConsolidationData.getNodeTemplateId();
context.addUnifiedSubstitutionData(serviceTemplateFileName, oldPortNodeTemplateId,
- substituteNodeTemplateId);
+ substituteNodeTemplateId);
}
}
}
@@ -1489,9 +1521,9 @@ public class UnifiedCompositionService {
Map<String, Object> indexPropertyValue = new HashMap<>();
Map<String, Object> properties = nodeTemplate.getProperties();
indexPropertyValue.put(ToscaFunctions.GET_PROPERTY.getDisplayName(),
- indexValueGetPropertyValue);
+ indexValueGetPropertyValue);
properties.put(ToscaConstants.INDEX_VALUE_PROPERTY_NAME,
- indexPropertyValue);
+ indexPropertyValue);
nodeTemplate.setProperties(properties);
}
@@ -1500,11 +1532,11 @@ public class UnifiedCompositionService {
String nodeTypeId,
Integer index) {
String computeNodeTemplateId =
- unifiedCompositionData.getComputeTemplateConsolidationData().getNodeTemplateId();
+ unifiedCompositionData.getComputeTemplateConsolidationData().getNodeTemplateId();
NodeTemplate computeNodeTemplate =
- DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
+ DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
String nodeTemplateId = ABSTRACT_NODE_TEMPLATE_ID_PREFIX + DataModelUtil
- .getNamespaceSuffix(nodeTypeId);
+ .getNamespaceSuffix(nodeTypeId);
if (Objects.nonNull(index)) {
nodeTemplateId = nodeTemplateId + "_" + index.toString();
}
@@ -1524,15 +1556,15 @@ public class UnifiedCompositionService {
Integer index,
TranslationContext context) {
String computeNodeTemplateId =
- unifiedCompositionData.getComputeTemplateConsolidationData().getNodeTemplateId();
+ unifiedCompositionData.getComputeTemplateConsolidationData().getNodeTemplateId();
NodeTemplate computeNodeTemplate =
- DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
+ DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
String computeType = computeNodeTemplate.getType();
String globalSTName = ToscaUtil.getServiceTemplateFileName(Constants
- .GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+ .GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
String nodeTypeId = ToscaNodeType.ABSTRACT_NODE_TYPE_PREFIX
- + DataModelUtil.getNamespaceSuffix(getIndexedGlobalNodeTypeId(computeType, context));
+ + DataModelUtil.getNamespaceSuffix(getIndexedGlobalNodeTypeId(computeType, context));
context.updateUsedTimesForNestedComputeNodeType(globalSTName, computeType);
@@ -1543,8 +1575,8 @@ public class UnifiedCompositionService {
}
private String getNewComputeNodeTemplateId(
- ServiceTemplate serviceTemplate,
- String computeNodeTemplateId) {
+ ServiceTemplate serviceTemplate,
+ String computeNodeTemplateId) {
return getComputeTypeSuffix(serviceTemplate, computeNodeTemplateId);
}
@@ -1554,15 +1586,13 @@ public class UnifiedCompositionService {
UnifiedCompositionData unifiedCompositionData,
String substitutionNodeTypeId,
Integer index) {
-// String substitutionNodeTypeId =
-// getSubstitutionNodeTypeId(serviceTemplate, unifiedCompositionData, index, context);
NodeType substitutionNodeType = new ToscaAnalyzerServiceImpl()
- .createInitSubstitutionNodeType(substitutionServiceTemplate,
- ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE);
+ .createInitSubstitutionNodeType(substitutionServiceTemplate,
+ ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE);
ServiceTemplate globalSubstitutionServiceTemplate =
- HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
+ HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
DataModelUtil.addNodeType(globalSubstitutionServiceTemplate, substitutionNodeTypeId,
- substitutionNodeType);
+ substitutionNodeType);
return substitutionNodeType;
}
@@ -1575,10 +1605,10 @@ public class UnifiedCompositionService {
if (unifiedCompositionDataList.size() > 1) {
handleConsolidationPorts(serviceTemplate, substitutionServiceTemplate,
- unifiedCompositionDataList, connectedComputeNodeType, context);
+ unifiedCompositionDataList, connectedComputeNodeType, context);
} else {
handleSinglePorts(serviceTemplate, substitutionServiceTemplate, connectedComputeNodeType,
- unifiedCompositionDataList, context);
+ unifiedCompositionDataList, context);
}
}
@@ -1589,18 +1619,18 @@ public class UnifiedCompositionService {
TranslationContext context) {
UnifiedCompositionData unifiedCompositionData = unifiedCompositionDataList.get(0);
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(unifiedCompositionData);
+ getPortTemplateConsolidationDataList(unifiedCompositionData);
if (CollectionUtils.isEmpty(portTemplateConsolidationDataList)) {
return;
}
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
List<EntityConsolidationData> portConsolidationDataList = new ArrayList<>();
portConsolidationDataList.add(portTemplateConsolidationData);
handlePortNodeTemplate(serviceTemplate, substitutionServiceTemplate,
- portConsolidationDataList, connectedComputeNodeType,
- unifiedCompositionData.getComputeTemplateConsolidationData(),
- unifiedCompositionDataList, context);
+ portConsolidationDataList, connectedComputeNodeType,
+ unifiedCompositionData.getComputeTemplateConsolidationData(),
+ unifiedCompositionDataList, context);
}
}
@@ -1610,62 +1640,62 @@ public class UnifiedCompositionService {
String connectedComputeNodeType,
TranslationContext context) {
Collection<ComputeTemplateConsolidationData> computeConsolidationDataList =
- (Collection) getComputeConsolidationDataList(unifiedCompositionDataList);
+ (Collection) getComputeConsolidationDataList(unifiedCompositionDataList);
Map<String, Set<String>> portIdsPerPortType = UnifiedCompositionUtil
- .collectAllPortsFromEachTypesFromComputes(computeConsolidationDataList);
+ .collectAllPortsFromEachTypesFromComputes(computeConsolidationDataList);
for (String portType : portIdsPerPortType.keySet()) {
List<EntityConsolidationData> portTemplateConsolidationDataList =
- getPortConsolidationDataList(portIdsPerPortType.get(portType),
- unifiedCompositionDataList);
+ getPortConsolidationDataList(portIdsPerPortType.get(portType),
+ unifiedCompositionDataList);
if (CollectionUtils.isEmpty(portTemplateConsolidationDataList)) {
continue;
}
handlePortNodeTemplate(serviceTemplate, substitutionServiceTemplate,
- portTemplateConsolidationDataList, connectedComputeNodeType,
- unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData(),
- unifiedCompositionDataList, context);
+ portTemplateConsolidationDataList, connectedComputeNodeType,
+ unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData(),
+ unifiedCompositionDataList, context);
}
}
private void handlePortNodeTemplate(
- ServiceTemplate serviceTemplate,
- ServiceTemplate substitutionServiceTemplate,
- List<EntityConsolidationData> portTemplateConsolidationDataList,
- String connectedComputeNodeType,
- ComputeTemplateConsolidationData computeTemplateConsolidationData,
- List<UnifiedCompositionData> unifiedCompositionDataList,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ ServiceTemplate substitutionServiceTemplate,
+ List<EntityConsolidationData> portTemplateConsolidationDataList,
+ String connectedComputeNodeType,
+ ComputeTemplateConsolidationData computeTemplateConsolidationData,
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ TranslationContext context) {
EntityConsolidationData portTemplateConsolidationData =
- portTemplateConsolidationDataList.get(0);
+ portTemplateConsolidationDataList.get(0);
NodeTemplate newPortNodeTemplate = getNodeTemplate(
- portTemplateConsolidationData.getNodeTemplateId(), serviceTemplate, context).clone();
+ portTemplateConsolidationData.getNodeTemplateId(), serviceTemplate, context).clone();
removeConnectivityOut(portTemplateConsolidationData, newPortNodeTemplate);
handleProperties(serviceTemplate, newPortNodeTemplate,
- substitutionServiceTemplate, UnifiedCompositionEntity.Port,
- portTemplateConsolidationDataList, computeTemplateConsolidationData,
- unifiedCompositionDataList, context);
+ substitutionServiceTemplate, UnifiedCompositionEntity.Port,
+ portTemplateConsolidationDataList, computeTemplateConsolidationData,
+ unifiedCompositionDataList, context);
String newPortNodeTemplateId =
- getNewPortNodeTemplateId(portTemplateConsolidationData
- .getNodeTemplateId(), connectedComputeNodeType,
- computeTemplateConsolidationData);
+ getNewPortNodeTemplateId(portTemplateConsolidationData
+ .getNodeTemplateId(), connectedComputeNodeType,
+ computeTemplateConsolidationData);
//Update requirements for relationships between the consolidation entities
handleConsolidationEntitiesRequirementConnectivity(newPortNodeTemplateId, newPortNodeTemplate,
- serviceTemplate, context);
+ serviceTemplate, context);
DataModelUtil.addNodeTemplate(substitutionServiceTemplate, newPortNodeTemplateId,
- newPortNodeTemplate);
+ newPortNodeTemplate);
//Add the node template mapping in the context for handling requirement updation
for (EntityConsolidationData data : portTemplateConsolidationDataList) {
String newPortTemplateId = getNewPortNodeTemplateId(data.getNodeTemplateId(),
- connectedComputeNodeType, computeTemplateConsolidationData);
+ connectedComputeNodeType, computeTemplateConsolidationData);
context.addSubstitutionServiceTemplateUnifiedSubstitutionData(ToscaUtil
- .getServiceTemplateFileName(serviceTemplate), data.getNodeTemplateId(),
- newPortTemplateId);
+ .getServiceTemplateFileName(serviceTemplate), data.getNodeTemplateId(),
+ newPortTemplateId);
}
}
@@ -1677,8 +1707,8 @@ public class UnifiedCompositionService {
if (Objects.isNull(nodeTemplate)) {
nodeTemplate = context
- .getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
- nodeTemplateId);
+ .getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
+ nodeTemplateId);
}
return nodeTemplate;
@@ -1690,25 +1720,34 @@ public class UnifiedCompositionService {
List<UnifiedCompositionData> unifiedCompositionDataList,
TranslationContext context) {
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData();
+ unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData();
handleComputeNodeTemplate(serviceTemplate, substitutionServiceTemplate,
- unifiedCompositionDataList, context);
- return handleComputeNodeType(serviceTemplate, substitutionServiceTemplate,
- computeTemplateConsolidationData);
+ unifiedCompositionDataList, context);
+ ServiceTemplate globalSubstitutionServiceTemplate =
+ HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
+ return handleComputeNodeType(serviceTemplate, substitutionServiceTemplate, globalSubstitutionServiceTemplate,
+ computeTemplateConsolidationData);
}
private String handleComputeNodeType(
- ServiceTemplate serviceTemplate,
- ServiceTemplate substitutionServiceTemplate,
- ComputeTemplateConsolidationData computeTemplateConsolidationData) {
+ ServiceTemplate serviceTemplate,
+ ServiceTemplate substitutionServiceTemplate,
+ ServiceTemplate globalSubstitutionServiceTemplate,
+ ComputeTemplateConsolidationData computeTemplateConsolidationData) {
NodeTemplate computeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ computeTemplateConsolidationData.getNodeTemplateId());
+ String computeNodeTypeId = computeNodeTemplate.getType();
NodeType computeNodeType =
- DataModelUtil.getNodeType(serviceTemplate, computeNodeTemplate.getType());
+ DataModelUtil.getNodeType(serviceTemplate, computeNodeTypeId);
DataModelUtil
- .addNodeType(substitutionServiceTemplate, computeNodeTemplate.getType(), computeNodeType);
+ .addNodeType(substitutionServiceTemplate, computeNodeTypeId, computeNodeType);
+// NodeType globalNodeType = new ToscaAnalyzerServiceImpl()
+// .createInitSubstitutionNodeType(substitutionServiceTemplate,
+// computeNodeType.getDerived_from());
+// DataModelUtil
+// .addNodeType(globalSubstitutionServiceTemplate, computeNodeTypeId, globalNodeType);
- return computeNodeTemplate.getType();
+ return computeNodeTypeId;
}
private void handleComputeNodeTemplate(ServiceTemplate serviceTemplate,
@@ -1716,46 +1755,46 @@ public class UnifiedCompositionService {
List<UnifiedCompositionData> unifiedCompositionDataList,
TranslationContext context) {
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData();
+ unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData();
NodeTemplate newComputeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId()).clone();
+ computeTemplateConsolidationData.getNodeTemplateId()).clone();
removeConnectivityOut(computeTemplateConsolidationData, newComputeNodeTemplate);
removeVolumeConnectivity(computeTemplateConsolidationData, newComputeNodeTemplate);
List<EntityConsolidationData> computeConsoliadtionDataList =
- getComputeConsolidationDataList(unifiedCompositionDataList);
+ getComputeConsolidationDataList(unifiedCompositionDataList);
handleProperties(serviceTemplate, newComputeNodeTemplate,
- substitutionServiceTemplate, UnifiedCompositionEntity.Compute,
- computeConsoliadtionDataList, computeTemplateConsolidationData, unifiedCompositionDataList,
- context);
+ substitutionServiceTemplate, UnifiedCompositionEntity.Compute,
+ computeConsoliadtionDataList, computeTemplateConsolidationData, unifiedCompositionDataList,
+ context);
String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ computeTemplateConsolidationData.getNodeTemplateId());
//Update requirements for relationships between the consolidation entities
handleConsolidationEntitiesRequirementConnectivity(newComputeNodeTemplateId,
- newComputeNodeTemplate,
- serviceTemplate, context);
+ newComputeNodeTemplate,
+ serviceTemplate, context);
DataModelUtil
- .addNodeTemplate(substitutionServiceTemplate,
- newComputeNodeTemplateId, newComputeNodeTemplate);
+ .addNodeTemplate(substitutionServiceTemplate,
+ newComputeNodeTemplateId, newComputeNodeTemplate);
//Add the node template mapping in the context for handling requirement updation
for (EntityConsolidationData data : computeConsoliadtionDataList) {
String newComputeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ computeTemplateConsolidationData.getNodeTemplateId());
context.addSubstitutionServiceTemplateUnifiedSubstitutionData(ToscaUtil
- .getServiceTemplateFileName(serviceTemplate), data.getNodeTemplateId(),
- newComputeTemplateId);
+ .getServiceTemplateFileName(serviceTemplate), data.getNodeTemplateId(),
+ newComputeTemplateId);
}
}
private List<EntityConsolidationData> getComputeConsolidationDataList(
- List<UnifiedCompositionData> unifiedCompositionDataList) {
+ List<UnifiedCompositionData> unifiedCompositionDataList) {
List<EntityConsolidationData> computeConsolidationDataList = new ArrayList<>();
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
computeConsolidationDataList
- .add(unifiedCompositionData.getComputeTemplateConsolidationData());
+ .add(unifiedCompositionData.getComputeTemplateConsolidationData());
}
return computeConsolidationDataList;
}
@@ -1770,15 +1809,15 @@ public class UnifiedCompositionService {
List<UnifiedCompositionData> unifiedCompositionDataList,
TranslationContext context) {
List<String> propertiesWithIdenticalVal =
- consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
+ consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
nodeTemplate.setProperties(new HashedMap());
handleNodeTemplateProperties(serviceTemplate, nodeTemplate, substitutionServiceTemplate,
- unifiedCompositionEntity, entityConsolidationDataList, computeTemplateConsolidationData,
- unifiedCompositionDataList, context);
+ unifiedCompositionEntity, entityConsolidationDataList, computeTemplateConsolidationData,
+ unifiedCompositionDataList, context);
//Add enrich properties from openecomp node type as input to global and substitution ST
handleNodeTypeProperties(substitutionServiceTemplate,
- entityConsolidationDataList, nodeTemplate, unifiedCompositionEntity,
- computeTemplateConsolidationData, context);
+ entityConsolidationDataList, nodeTemplate, unifiedCompositionEntity,
+ computeTemplateConsolidationData, context);
}
@@ -1787,50 +1826,50 @@ public class UnifiedCompositionService {
ServiceTemplate substitutionServiceTemplate,
UnifiedCompositionEntity unifiedCompositionEntity,
List<EntityConsolidationData>
- entityConsolidationDataList,
+ entityConsolidationDataList,
ComputeTemplateConsolidationData
- computeTemplateConsolidationData,
+ computeTemplateConsolidationData,
List<UnifiedCompositionData> unifiedCompositionDataList,
TranslationContext context) {
List<String> propertiesWithIdenticalVal =
- consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
+ consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
for (EntityConsolidationData entityConsolidationData : entityConsolidationDataList) {
String nodeTemplateId = entityConsolidationData.getNodeTemplateId();
Map<String, Object> properties =
- DataModelUtil.getNodeTemplateProperties(serviceTemplate, nodeTemplateId);
+ DataModelUtil.getNodeTemplateProperties(serviceTemplate, nodeTemplateId);
if (MapUtils.isEmpty(properties)) {
continue;
}
for (Map.Entry<String, Object> propertyEntry : properties.entrySet()) {
NodeType nodeTypeWithFlatHierarchy =
- HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(), serviceTemplate,
- context);
+ HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(), serviceTemplate,
+ context);
PropertyDefinition propertyDefinition =
- nodeTypeWithFlatHierarchy.getProperties().get(propertyEntry.getKey());
+ nodeTypeWithFlatHierarchy.getProperties().get(propertyEntry.getKey());
String propertyType = propertyDefinition.getType();
if (propertiesWithIdenticalVal.contains(propertyEntry.getKey())) {
String parameterId =
- updateIdenticalProperty(nodeTemplateId, propertyEntry.getKey(), nodeTemplate,
- unifiedCompositionEntity, unifiedCompositionDataList);
+ updateIdenticalProperty(nodeTemplateId, propertyEntry.getKey(), nodeTemplate,
+ unifiedCompositionEntity, unifiedCompositionDataList);
addInputParameter(
- parameterId, propertyType,
- propertyType.equals(PropertyType.LIST.getDisplayName()) ? propertyDefinition
- .getEntry_schema() : null,
- substitutionServiceTemplate);
+ parameterId, propertyType,
+ propertyType.equals(PropertyType.LIST.getDisplayName()) ? propertyDefinition
+ .getEntry_schema() : null,
+ substitutionServiceTemplate);
} else {
Optional<String> parameterId =
- updateProperty(serviceTemplate, nodeTemplateId, nodeTemplate, propertyEntry,
- unifiedCompositionEntity, computeTemplateConsolidationData,
- unifiedCompositionDataList,
- context);
+ updateProperty(serviceTemplate, nodeTemplateId, nodeTemplate, propertyEntry,
+ unifiedCompositionEntity, computeTemplateConsolidationData,
+ unifiedCompositionDataList,
+ context);
//todo - define list of type which will match the node property type (instead of string)
addPropertyInputParameter(propertyType, substitutionServiceTemplate, propertyDefinition
- .getEntry_schema(),
- parameterId, unifiedCompositionEntity, context);
+ .getEntry_schema(),
+ parameterId, unifiedCompositionEntity, context);
}
}
}
@@ -1841,7 +1880,7 @@ public class UnifiedCompositionService {
NodeTemplate nodeTemplate,
UnifiedCompositionEntity compositionEntity,
ComputeTemplateConsolidationData
- computeTemplateConsolidationData,
+ computeTemplateConsolidationData,
TranslationContext context) {
ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
Optional<NodeType> enrichNodeType;
@@ -1849,8 +1888,8 @@ public class UnifiedCompositionService {
if (compositionEntity.equals(UnifiedCompositionEntity.Port)) {
enrichNodeType =
- toscaAnalyzerService.fetchNodeType(ToscaNodeType.NETWORK_PORT,
- context.getGlobalServiceTemplates().values());
+ toscaAnalyzerService.fetchNodeType(ToscaNodeType.NETWORK_PORT,
+ context.getGlobalServiceTemplates().values());
enrichProperties = context.getEnrichPortResourceProperties();
if (!enrichNodeType.isPresent() || Objects.isNull(enrichProperties)) {
return;
@@ -1864,9 +1903,9 @@ public class UnifiedCompositionService {
if (Objects.nonNull(enrichNodeTypeProperties)) {
for (String enrichPropertyName : enrichProperties) {
handleEntityConsolidationDataNodeTypeProperties(
- enrichPropertyName, substitutionServiceTemplate,
- enrichNodeType.get(), nodeTemplate, compositionEntity, computeTemplateConsolidationData,
- entityConsolidationDataList, nodeTemplateProperties, context);
+ enrichPropertyName, substitutionServiceTemplate,
+ enrichNodeType.get(), nodeTemplate, compositionEntity, computeTemplateConsolidationData,
+ entityConsolidationDataList, nodeTemplateProperties, context);
}
}
}
@@ -1887,14 +1926,14 @@ public class UnifiedCompositionService {
String nodeTemplateId = entityConsolidationData.getNodeTemplateId();
String inputParamId =
- getParameterId(nodeTemplateId, nodeTemplate, enrichPropertyName,
- compositionEntity, computeTemplateConsolidationData);
+ getParameterId(nodeTemplateId, nodeTemplate, enrichPropertyName,
+ compositionEntity, computeTemplateConsolidationData);
Map<String, String> propertyValMap = new HashMap<>();
context
- .addNewPropertyIdToNodeTemplate(
- ToscaUtil.getServiceTemplateFileName(substitutionServiceTemplate),
- inputParamId, nodeTemplateProperties.get(enrichPropertyName));
+ .addNewPropertyIdToNodeTemplate(
+ ToscaUtil.getServiceTemplateFileName(substitutionServiceTemplate),
+ inputParamId, nodeTemplateProperties.get(enrichPropertyName));
if (nodeTemplateProperties.containsKey(enrichPropertyName)) {
handleExistingEnrichedProperty(enrichPropertyName, nodeTemplateProperties, inputParamId);
@@ -1903,11 +1942,11 @@ public class UnifiedCompositionService {
nodeTemplate.getProperties().put(enrichPropertyName, propertyValMap);
}
propertyType =
- enrichNodeType.getProperties().get(enrichPropertyName).getType();
+ enrichNodeType.getProperties().get(enrichPropertyName).getType();
addPropertyInputParameter(propertyType, substitutionServiceTemplate, enrichNodeType
- .getProperties().get(enrichPropertyName).getEntry_schema(),
- Optional.of(inputParamId), compositionEntity, context);
+ .getProperties().get(enrichPropertyName).getEntry_schema(),
+ Optional.of(inputParamId), compositionEntity, context);
}
}
@@ -1942,35 +1981,35 @@ public class UnifiedCompositionService {
UnifiedCompositionEntity unifiedCompositionEntity,
TranslationContext context) {
if (parameterId.isPresent() &&
- isParameterBelongsToEnrichedPortProperties(parameterId.get(), context)) {
+ isParameterBelongsToEnrichedPortProperties(parameterId.get(), context)) {
addInputParameter(parameterId.get(),
- propertyType,
- propertyType.equals(PropertyType.LIST.getDisplayName()) ? entrySchema : null,
- substitutionServiceTemplate);
+ propertyType,
+ propertyType.equals(PropertyType.LIST.getDisplayName()) ? entrySchema : null,
+ substitutionServiceTemplate);
} else if (isPropertySimpleType(propertyType)) {
parameterId
- .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
- PropertyType.LIST.getDisplayName(),
- DataModelUtil
- .createEntrySchema(propertyType.toLowerCase(), null, null),
- substitutionServiceTemplate));
+ .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
+ PropertyType.LIST.getDisplayName(),
+ DataModelUtil
+ .createEntrySchema(propertyType.toLowerCase(), null, null),
+ substitutionServiceTemplate));
} else if (propertyType.equals(PropertyTypeExt.JSON.getDisplayName()) ||
- (Objects.nonNull(entrySchema) && isPropertySimpleType(entrySchema.getType()))) {
+ (Objects.nonNull(entrySchema) && isPropertySimpleType(entrySchema.getType()))) {
parameterId
- .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
- PropertyType.LIST.getDisplayName(),
- DataModelUtil
- .createEntrySchema(PropertyTypeExt.JSON.getDisplayName(), null, null),
- substitutionServiceTemplate));
+ .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
+ PropertyType.LIST.getDisplayName(),
+ DataModelUtil
+ .createEntrySchema(PropertyTypeExt.JSON.getDisplayName(), null, null),
+ substitutionServiceTemplate));
} else {
parameterId
- .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
- analyzeParameterType(propertyType),
- DataModelUtil
- .createEntrySchema(analyzeEntrySchemaType(propertyType, entrySchema),
- null, null),
- substitutionServiceTemplate));
+ .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
+ analyzeParameterType(propertyType),
+ DataModelUtil
+ .createEntrySchema(analyzeEntrySchemaType(propertyType, entrySchema),
+ null, null),
+ substitutionServiceTemplate));
}
}
@@ -1989,20 +2028,20 @@ public class UnifiedCompositionService {
private boolean isPropertySimpleType(String propertyType) {
return !Objects.isNull(propertyType) &&
- (propertyType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
- || propertyType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
- || propertyType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
- || propertyType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName()));
+ (propertyType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
+ || propertyType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
+ || propertyType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
+ || propertyType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName()));
}
private String analyzeParameterType(String propertyType) {
return propertyType.equalsIgnoreCase(PropertyType.LIST.getDisplayName()) ? PropertyType.LIST
- .getDisplayName() : propertyType;
+ .getDisplayName() : propertyType;
}
private String analyzeEntrySchemaType(String propertyType, EntrySchema entrySchema) {
return propertyType.equalsIgnoreCase(PropertyType.LIST.getDisplayName()) ?
- entrySchema.getType() : null;
+ entrySchema.getType() : null;
}
private void handleConsolidationEntitiesRequirementConnectivity(String nodeTemplateId,
@@ -2011,7 +2050,7 @@ public class UnifiedCompositionService {
TranslationContext context) {
Map<String, RequirementAssignment> updatedNodeTemplateRequirements = new HashMap<>();
List<Map<String, RequirementAssignment>> nodeTemplateRequirements = DataModelUtil
- .getNodeTemplateRequirementList(nodeTemplate);
+ .getNodeTemplateRequirementList(nodeTemplate);
if (CollectionUtils.isEmpty(nodeTemplateRequirements)) {
return;
}
@@ -2021,8 +2060,8 @@ public class UnifiedCompositionService {
RequirementAssignment requirementAssignment = entry.getValue();
String requirementNode = requirementAssignment.getNode();
String unifiedNodeTemplateId =
- context.getUnifiedSubstitutionNodeTemplateId(serviceTemplate,
- requirementNode);
+ context.getUnifiedSubstitutionNodeTemplateId(serviceTemplate,
+ requirementNode);
if (unifiedNodeTemplateId != null) {
//Update the node id in the requirement
requirementAssignment.setNode(unifiedNodeTemplateId);
@@ -2042,14 +2081,14 @@ public class UnifiedCompositionService {
String relationshipId,
TranslationContext context) {
Map<String, RelationshipTemplate> relationshipTemplates = DataModelUtil
- .getRelationshipTemplates(serviceTemplate);
+ .getRelationshipTemplates(serviceTemplate);
if (relationshipTemplates != null) {
RelationshipTemplate relationshipTemplate = relationshipTemplates.get(relationshipId);
if (relationshipTemplate != null) {
String relationshipTemplateType = relationshipTemplate.getType();
if (relationshipTemplateType.equals(ToscaRelationshipType.CINDER_VOLUME_ATTACHES_TO)) {
handleCinderVolumeAttachmentRelationshipTemplate(serviceTemplate,
- relationshipTemplate, context);
+ relationshipTemplate, context);
}
}
}
@@ -2057,14 +2096,14 @@ public class UnifiedCompositionService {
private void handleCinderVolumeAttachmentRelationshipTemplate(ServiceTemplate
- substitutionServiceTemplate,
+ substitutionServiceTemplate,
RelationshipTemplate
- relationshipTemplate,
+ relationshipTemplate,
TranslationContext context) {
Map<String, Object> properties = relationshipTemplate.getProperties();
properties.computeIfPresent(HeatConstants.INSTANCE_UUID_PROPERTY_NAME, (key, value) ->
- context.getUnifiedAbstractNodeTemplateId(substitutionServiceTemplate,
- (String) value));
+ context.getUnifiedAbstractNodeTemplateId(substitutionServiceTemplate,
+ (String) value));
}
private String updateIdenticalProperty(String nodeTemplateId, String propertyId,
@@ -2078,7 +2117,7 @@ public class UnifiedCompositionService {
switch (unifiedCompositionEntity) {
case Compute:
inputParamId = COMPUTE_IDENTICAL_VALUE_PROPERTY_PREFIX + propertyId
- + COMPUTE_IDENTICAL_VALUE_PROPERTY_SUFFIX;
+ + COMPUTE_IDENTICAL_VALUE_PROPERTY_SUFFIX;
propertyVal.put(ToscaFunctions.GET_INPUT.getDisplayName(), inputParamId);
nodeTemplate.getProperties().put(propertyId, propertyVal);
@@ -2088,9 +2127,9 @@ public class UnifiedCompositionService {
case Port:
String portType = ConsolidationDataUtil.getPortType(nodeTemplateId);
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- getConnectedComputeConsolidationData(unifiedCompositionDataList, nodeTemplateId);
+ getConnectedComputeConsolidationData(unifiedCompositionDataList, nodeTemplateId);
inputParamId = getInputParamIdForPort(nodeTemplateId, propertyId, portType,
- computeTemplateConsolidationData);
+ computeTemplateConsolidationData);
propertyVal.put(ToscaFunctions.GET_INPUT.getDisplayName(), inputParamId);
nodeTemplate.getProperties().put(propertyId, propertyVal);
@@ -2106,15 +2145,15 @@ public class UnifiedCompositionService {
ComputeTemplateConsolidationData computeTemplateConsolidationData) {
String inputParamId;
if (Objects.isNull(computeTemplateConsolidationData)
- || computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
+ || computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
inputParamId =
- UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + nodeTemplateId + "_" +
- propertyId;
+ UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + nodeTemplateId + "_" +
+ propertyId;
} else {
inputParamId =
- UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + portType + "_"
- + propertyId;
+ UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + portType + "_"
+ + propertyId;
}
return inputParamId;
}
@@ -2125,36 +2164,36 @@ public class UnifiedCompositionService {
ServiceTemplate serviceTemplate) {
ParameterDefinition parameterDefinition = DataModelUtil.createParameterDefinition
- (parameterType, null, null,
- true, null, null,
- entrySchema, null);
+ (parameterType, null, null,
+ true, null, null,
+ entrySchema, null);
DataModelUtil
- .addInputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
+ .addInputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
}
// Return the input parameter Id which is used in the new property value if there is one
private Optional<String> updateProperty(
- ServiceTemplate serviceTemplate,
- String nodeTemplateId, NodeTemplate nodeTemplate,
- Map.Entry<String, Object> propertyEntry,
- UnifiedCompositionEntity compositionEntity,
- ComputeTemplateConsolidationData computeTemplateConsolidationData,
- List<UnifiedCompositionData> unifiedCompositionDataList,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ String nodeTemplateId, NodeTemplate nodeTemplate,
+ Map.Entry<String, Object> propertyEntry,
+ UnifiedCompositionEntity compositionEntity,
+ ComputeTemplateConsolidationData computeTemplateConsolidationData,
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ TranslationContext context) {
if (handleGetAttrFromConsolidationNodes(serviceTemplate, nodeTemplateId, nodeTemplate,
- propertyEntry, unifiedCompositionDataList, context)) {
+ propertyEntry, unifiedCompositionDataList, context)) {
return Optional.empty();
}
String inputParamId =
- getParameterId(nodeTemplateId, nodeTemplate, propertyEntry.getKey(), compositionEntity,
- computeTemplateConsolidationData);
+ getParameterId(nodeTemplateId, nodeTemplate, propertyEntry.getKey(), compositionEntity,
+ computeTemplateConsolidationData);
Map<String, List<String>> propertyVal = getPropertyValueInputParam(nodeTemplateId,
- nodeTemplate, inputParamId);
+ nodeTemplate, inputParamId);
nodeTemplate.getProperties().put(propertyEntry.getKey(), propertyVal);
return Optional.of(inputParamId);
}
@@ -2171,17 +2210,17 @@ public class UnifiedCompositionService {
}
private boolean handleGetAttrFromConsolidationNodes(
- ServiceTemplate serviceTemplate,
- String nodeTemplateId, NodeTemplate nodeTemplate,
- Map.Entry<String, Object> propertyEntry,
- List<UnifiedCompositionData> unifiedCompositionDataList,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ String nodeTemplateId, NodeTemplate nodeTemplate,
+ Map.Entry<String, Object> propertyEntry,
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ TranslationContext context) {
Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType =
- getAllConsolidationNodeTemplateIdAndType(unifiedCompositionDataList);
+ getAllConsolidationNodeTemplateIdAndType(unifiedCompositionDataList);
Set<String> consolidationNodeTemplateIds = consolidationNodeTemplateIdAndType.keySet();
Map<String, String> entityIdToType = ConsolidationService.getConsolidationEntityIdToType(
- serviceTemplate, context.getConsolidationData());
+ serviceTemplate, context.getConsolidationData());
boolean includeGetAttrFromConsolidationNodes = false;
boolean includeGetAttrFromOutsideNodes = false;
boolean isGetAttrFromConsolidationIsFromSameType = false;
@@ -2198,9 +2237,9 @@ public class UnifiedCompositionService {
}
}
if ((includeGetAttrFromConsolidationNodes && includeGetAttrFromOutsideNodes)
- ||
- (includeGetAttrFromConsolidationNodes && isIncludeToscaFunc(propertyEntry.getValue(),
- ToscaFunctions.GET_INPUT))) {
+ ||
+ (includeGetAttrFromConsolidationNodes && isIncludeToscaFunc(propertyEntry.getValue(),
+ ToscaFunctions.GET_INPUT))) {
//This case is currently not supported - this property will be ignored
return true;
} else if (includeGetAttrFromConsolidationNodes && !isGetAttrFromConsolidationIsFromSameType) {
@@ -2210,7 +2249,7 @@ public class UnifiedCompositionService {
String targetNodeTemplateId = (String) getAttrFunc.get(0);
if (consolidationNodeTemplateIds.contains(targetNodeTemplateId)) {
updatePropertyGetAttrFunc(serviceTemplate, unifiedCompositionDataList, context,
- consolidationNodeTemplateIdAndType, targetNodeTemplateId, getAttrFunc);
+ consolidationNodeTemplateIdAndType, targetNodeTemplateId, getAttrFunc);
}
}
nodeTemplate.getProperties().put(propertyEntry.getKey(), clonedPropertyValue);
@@ -2222,10 +2261,10 @@ public class UnifiedCompositionService {
private boolean isGetAttrFromConsolidationNodesIsFromSameType(String sourceNodeTemplateId,
Set<String> nodeTemplateIdsFromConsolidation,
Map<String, String>
- nodeTemplateIdToType) {
+ nodeTemplateIdToType) {
for (String idFromConsolidation : nodeTemplateIdsFromConsolidation) {
if (isGetAttrNodeTemplateFromSameType(sourceNodeTemplateId, idFromConsolidation,
- nodeTemplateIdToType)) {
+ nodeTemplateIdToType)) {
return true;
}
}
@@ -2237,26 +2276,26 @@ public class UnifiedCompositionService {
Map<String, String> nodeTemplateIdToType) {
if (Objects.isNull(nodeTemplateIdToType.get(sourceNodeTemplateId))
- || Objects.isNull(nodeTemplateIdToType.get(targetNodeTemplateId))) {
+ || Objects.isNull(nodeTemplateIdToType.get(targetNodeTemplateId))) {
return false;
}
return nodeTemplateIdToType.get(sourceNodeTemplateId).equals(nodeTemplateIdToType
- .get(targetNodeTemplateId));
+ .get(targetNodeTemplateId));
}
private void updatePropertyGetAttrFunc(
- ServiceTemplate serviceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList,
- TranslationContext context,
- Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType,
- String targetNodeTemplateId,
- List<Object> getAttrFunc) {
+ ServiceTemplate serviceTemplate,
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ TranslationContext context,
+ Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType,
+ String targetNodeTemplateId,
+ List<Object> getAttrFunc) {
UnifiedCompositionEntity targetCompositionEntity =
- consolidationNodeTemplateIdAndType.get(targetNodeTemplateId);
+ consolidationNodeTemplateIdAndType.get(targetNodeTemplateId);
String targetNewNodeTemplateId =
- getNewNodeTemplateId(serviceTemplate, unifiedCompositionDataList, targetNodeTemplateId,
- targetCompositionEntity);
+ getNewNodeTemplateId(serviceTemplate, unifiedCompositionDataList, targetNodeTemplateId,
+ targetCompositionEntity);
getAttrFunc.set(0, targetNewNodeTemplateId);
}
@@ -2269,13 +2308,13 @@ public class UnifiedCompositionService {
return getNewComputeNodeTemplateId(serviceTemplate, nodeTemplateId);
case Port:
ComputeTemplateConsolidationData connectedComputeConsolidationData =
- getConnectedComputeConsolidationData(
- unifiedCompositionDataList, nodeTemplateId);
+ getConnectedComputeConsolidationData(
+ unifiedCompositionDataList, nodeTemplateId);
NodeTemplate connectedComputeNodeTemplate =
- DataModelUtil.getNodeTemplate(serviceTemplate,
- connectedComputeConsolidationData.getNodeTemplateId());
+ DataModelUtil.getNodeTemplate(serviceTemplate,
+ connectedComputeConsolidationData.getNodeTemplateId());
return getNewPortNodeTemplateId(nodeTemplateId, connectedComputeNodeTemplate.getType(),
- connectedComputeConsolidationData);
+ connectedComputeConsolidationData);
default:
return null;
}
@@ -2288,13 +2327,13 @@ public class UnifiedCompositionService {
ConsolidationData consolidationData = context.getConsolidationData();
if (isIdIsOfExpectedType(origNodeTemplateId, UnifiedCompositionEntity.Port,
- serviceTemplateFileName,
- context)) {
+ serviceTemplateFileName,
+ context)) {
return handleIdOfPort(origNodeTemplateId, serviceTemplateFileName, consolidationData);
} else if (isIdIsOfExpectedType(origNodeTemplateId, UnifiedCompositionEntity.Compute,
- serviceTemplateFileName, context)) {
+ serviceTemplateFileName, context)) {
NodeTemplate nodeTemplate =
- getComputeNodeTemplate(origNodeTemplateId, serviceTemplate, context);
+ getComputeNodeTemplate(origNodeTemplateId, serviceTemplate, context);
return getComputeTypeSuffix(nodeTemplate.getType());
}
@@ -2302,11 +2341,11 @@ public class UnifiedCompositionService {
}
private ComputeTemplateConsolidationData getConnectedComputeConsolidationData(
- List<UnifiedCompositionData> unifiedCompositionDataList,
- String portNodeTemplateId) {
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ String portNodeTemplateId) {
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
Collection<List<String>> portsCollection =
- unifiedCompositionData.getComputeTemplateConsolidationData().getPorts().values();
+ unifiedCompositionData.getComputeTemplateConsolidationData().getPorts().values();
for (List<String> portIdList : portsCollection) {
if (portIdList.contains(portNodeTemplateId)) {
return unifiedCompositionData.getComputeTemplateConsolidationData();
@@ -2332,16 +2371,16 @@ public class UnifiedCompositionService {
switch (unifiedCompositionEntity) {
case Compute:
return UnifiedCompositionEntity.Compute.name().toLowerCase() + "_"
- + getComputeTypeSuffix(nodeTemplate.getType()) + "_" + propertyId;
+ + getComputeTypeSuffix(nodeTemplate.getType()) + "_" + propertyId;
case Port:
String portType = ConsolidationDataUtil.getPortType(nodeTemplateId);
if (Objects.isNull(computeTemplateConsolidationData)
- || computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
+ || computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
return UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + nodeTemplateId + "_"
- + propertyId;
+ + propertyId;
}
return UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + portType + "_"
- + propertyId;
+ + propertyId;
default:
return propertyId;
}
@@ -2354,10 +2393,10 @@ public class UnifiedCompositionService {
}
for (List<RequirementAssignmentData> requirementAssignmentDataList : entityConsolidationData
- .getNodesConnectedOut().values()) {
+ .getNodesConnectedOut().values()) {
for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList) {
DataModelUtil.removeRequirementsAssignment(nodeTemplate.getRequirements(),
- requirementAssignmentData.getRequirementId());
+ requirementAssignmentData.getRequirementId());
}
if (nodeTemplate.getRequirements().isEmpty()) {
nodeTemplate.setRequirements(null);
@@ -2366,17 +2405,17 @@ public class UnifiedCompositionService {
}
private void removeVolumeConnectivity(
- ComputeTemplateConsolidationData computeTemplateConsolidationData,
- NodeTemplate computeNodeTemplate) {
+ ComputeTemplateConsolidationData computeTemplateConsolidationData,
+ NodeTemplate computeNodeTemplate) {
if (MapUtils.isEmpty(computeTemplateConsolidationData.getVolumes())) {
return;
}
Collection<List<RequirementAssignmentData>> volumeCollection =
- computeTemplateConsolidationData.getVolumes().values();
+ computeTemplateConsolidationData.getVolumes().values();
for (List<RequirementAssignmentData> requirementAssignmentDataList : volumeCollection) {
for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList) {
DataModelUtil.removeRequirementsAssignment(computeNodeTemplate.getRequirements(),
- requirementAssignmentData.getRequirementId());
+ requirementAssignmentData.getRequirementId());
}
}
if (computeNodeTemplate.getRequirements().isEmpty()) {
@@ -2386,11 +2425,11 @@ public class UnifiedCompositionService {
private void createIndexInputParameter(ServiceTemplate substitutionServiceTemplate) {
ParameterDefinition indexParameterDefinition =
- DataModelUtil.createParameterDefinition(PropertyType.INTEGER.getDisplayName(),
- "Index value of this substitution service template runtime instance", null,
- false, createIndexValueConstraint(), null, null, 0);
+ DataModelUtil.createParameterDefinition(PropertyType.INTEGER.getDisplayName(),
+ "Index value of this substitution service template runtime instance", null,
+ false, createIndexValueConstraint(), null, null, 0);
DataModelUtil.addInputParameterToTopologyTemplate(substitutionServiceTemplate,
- ToscaConstants.INDEX_VALUE_PROPERTY_NAME, indexParameterDefinition);
+ ToscaConstants.INDEX_VALUE_PROPERTY_NAME, indexParameterDefinition);
}
@@ -2405,50 +2444,50 @@ public class UnifiedCompositionService {
private Optional<UnifiedComposition> getUnifiedCompositionInstance(UnifiedCompositionMode mode) {
String unifiedCompositionImplClassName =
- unifiedCompositionImplMap.get(mode.name()).getImplementationClass();
+ unifiedCompositionImplMap.get(mode.name()).getImplementationClass();
if (StringUtils.isEmpty(unifiedCompositionImplClassName)) {
return Optional.empty();
}
return Optional
- .of(CommonMethods.newInstance(unifiedCompositionImplClassName, UnifiedComposition.class));
+ .of(CommonMethods.newInstance(unifiedCompositionImplClassName, UnifiedComposition.class));
}
private Optional<Map<String, Object>> createAbstractSubstitutionProperties(
- ServiceTemplate serviceTemplate,
- ServiceTemplate substitutionServiceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList,
- TranslationContext context) {
+ ServiceTemplate serviceTemplate,
+ ServiceTemplate substitutionServiceTemplate,
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ TranslationContext context) {
Map<String, Object> abstractSubstituteProperties = new LinkedHashMap<>();
Map<String, ParameterDefinition> substitutionTemplateInputs = DataModelUtil
- .getInputParameters(substitutionServiceTemplate);
+ .getInputParameters(substitutionServiceTemplate);
if (substitutionTemplateInputs == null) {
return Optional.empty();
}
//Since all the computes have the same type fetching the type from the first entry
NodeTemplate firstComputeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
- unifiedCompositionDataList.get(0)
- .getComputeTemplateConsolidationData().getNodeTemplateId());
+ unifiedCompositionDataList.get(0)
+ .getComputeTemplateConsolidationData().getNodeTemplateId());
String computeType = getComputeTypeSuffix(firstComputeNodeTemplate.getType());
for (Map.Entry<String, ParameterDefinition> input : substitutionTemplateInputs.entrySet()) {
String substitutionTemplateInputName = input.getKey();
ParameterDefinition inputParameterDefinition = input.getValue();
String inputType = inputParameterDefinition.getType();
UnifiedCompositionEntity inputUnifiedCompositionEntity =
- getInputCompositionEntity(substitutionTemplateInputName);
+ getInputCompositionEntity(substitutionTemplateInputName);
if (!inputType.equalsIgnoreCase(PropertyType.LIST.getDisplayName())) {
if (isIdenticalValueProperty(
- substitutionTemplateInputName, inputUnifiedCompositionEntity, context)) {
+ substitutionTemplateInputName, inputUnifiedCompositionEntity, context)) {
//Handle identical value properties
Optional<String> identicalValuePropertyName =
- getIdenticalValuePropertyName(substitutionTemplateInputName,
- inputUnifiedCompositionEntity, context);
+ getIdenticalValuePropertyName(substitutionTemplateInputName,
+ inputUnifiedCompositionEntity, context);
if (identicalValuePropertyName.isPresent()) {
updateIdenticalPropertyValue(identicalValuePropertyName.get(),
- substitutionTemplateInputName, computeType, inputUnifiedCompositionEntity,
- unifiedCompositionDataList.get(0), serviceTemplate, abstractSubstituteProperties,
- context);
+ substitutionTemplateInputName, computeType, inputUnifiedCompositionEntity,
+ unifiedCompositionDataList.get(0), serviceTemplate, abstractSubstituteProperties,
+ context);
}
}
continue;
@@ -2461,9 +2500,9 @@ public class UnifiedCompositionService {
case Compute:
for (UnifiedCompositionData compositionData : unifiedCompositionDataList) {
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- compositionData.getComputeTemplateConsolidationData();
+ compositionData.getComputeTemplateConsolidationData();
propertyValue = getComputePropertyValue(substitutionTemplateInputName,
- serviceTemplate, computeTemplateConsolidationData);
+ serviceTemplate, computeTemplateConsolidationData);
if (!(propertyValue instanceof Optional)) {
abstractPropertyValue.add(propertyValue);
}
@@ -2472,18 +2511,18 @@ public class UnifiedCompositionService {
case Port:
for (UnifiedCompositionData compositionData : unifiedCompositionDataList) {
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(compositionData);
+ getPortTemplateConsolidationDataList(compositionData);
//Get the input type for this input whether it is of type
// port_<port_node_template_id>_<property_name> or port_<port_type>_<property_name>
PortInputType portInputType = getPortInputType(substitutionTemplateInputName,
- compositionData);
+ compositionData);
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
//Get the port property value
String portNodeTemplateId = portTemplateConsolidationData.getNodeTemplateId();
propertyValue = getPortPropertyValue(substitutionTemplateInputName,
- computeType, portInputType, serviceTemplate,
- portNodeTemplateId);
+ computeType, portInputType, serviceTemplate,
+ portNodeTemplateId);
//If the value object is Optional.empty it implies that the property name was not
// found in the input name
if (!(propertyValue instanceof Optional)) {
@@ -2501,7 +2540,7 @@ public class UnifiedCompositionService {
for (Object val : abstractPropertyValue) {
if (Objects.nonNull(val)) {
updateAbstractPropertyValue(substitutionTemplateInputName, inputParameterDefinition,
- abstractPropertyValue, abstractSubstituteProperties);
+ abstractPropertyValue, abstractSubstituteProperties);
break;
}
}
@@ -2519,10 +2558,10 @@ public class UnifiedCompositionService {
Object propertyValue = abstractPropertyValue.get(0);
String entrySchemaType = parameterDefinition.getEntry_schema().getType();
if (entrySchemaType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
- || entrySchemaType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
- || entrySchemaType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
- || entrySchemaType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName())
- || entrySchemaType.equals(PropertyTypeExt.JSON.getDisplayName())) {
+ || entrySchemaType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
+ || entrySchemaType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
+ || entrySchemaType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName())
+ || entrySchemaType.equals(PropertyTypeExt.JSON.getDisplayName())) {
abstractSubstituteProperties.put(substitutionTemplateInputName, abstractPropertyValue);
} else {
abstractSubstituteProperties.put(substitutionTemplateInputName, propertyValue);
@@ -2539,12 +2578,12 @@ public class UnifiedCompositionService {
Map<String, Object> abstractSubstituteProperties,
TranslationContext context) {
Optional<Object> identicalPropertyValueByType =
- getIdenticalPropertyValueByType(identicalValuePropertyName, substitutionTemplateInputName,
- entity, unifiedCompositionData, serviceTemplate, context);
+ getIdenticalPropertyValueByType(identicalValuePropertyName, substitutionTemplateInputName,
+ entity, unifiedCompositionData, serviceTemplate, context);
if (identicalPropertyValueByType.isPresent()) {
abstractSubstituteProperties
- .put(substitutionTemplateInputName, identicalPropertyValueByType.get());
+ .put(substitutionTemplateInputName, identicalPropertyValueByType.get());
}
@@ -2559,33 +2598,33 @@ public class UnifiedCompositionService {
TranslationContext context) {
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- unifiedCompositionData.getComputeTemplateConsolidationData();
+ unifiedCompositionData.getComputeTemplateConsolidationData();
Optional<Object> computeIdenticalPropertyValue;
switch (entity) {
case Compute:
computeIdenticalPropertyValue =
- getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
- entity, computeTemplateConsolidationData, context);
+ getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
+ entity, computeTemplateConsolidationData, context);
return computeIdenticalPropertyValue.isPresent() ? Optional.of(
- computeIdenticalPropertyValue.get()) : Optional.empty();
+ computeIdenticalPropertyValue.get()) : Optional.empty();
case Other:
computeIdenticalPropertyValue =
- getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
- entity, computeTemplateConsolidationData, context);
+ getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
+ entity, computeTemplateConsolidationData, context);
return computeIdenticalPropertyValue.isPresent() ? Optional.of(
- computeIdenticalPropertyValue.get()) : Optional.empty();
+ computeIdenticalPropertyValue.get()) : Optional.empty();
case Port:
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- unifiedCompositionData.getPortTemplateConsolidationDataList();
+ unifiedCompositionData.getPortTemplateConsolidationDataList();
for (PortTemplateConsolidationData portTemplateConsolidationData : portTemplateConsolidationDataList) {
String portType =
- ConsolidationDataUtil.getPortType(portTemplateConsolidationData.getNodeTemplateId());
+ ConsolidationDataUtil.getPortType(portTemplateConsolidationData.getNodeTemplateId());
if (substitutionTemplateInputName.contains(portType)) {
return getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
- entity, portTemplateConsolidationData, context);
+ entity, portTemplateConsolidationData, context);
}
}
}
@@ -2599,13 +2638,13 @@ public class UnifiedCompositionService {
UnifiedCompositionData unifiedCompositionData) {
String portInputPrefix = UnifiedCompositionEntity.Port.name().toLowerCase() + "_";
ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
- .getComputeTemplateConsolidationData();
+ .getComputeTemplateConsolidationData();
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(unifiedCompositionData);
+ getPortTemplateConsolidationDataList(unifiedCompositionData);
//Scan the available port node template ids to check if the input is of the form
// "port_<port_node_template_id>_<property_name>"
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
String portNodeTemplateId = portTemplateConsolidationData.getNodeTemplateId();
String portNodeTemplateIdPrefix = portInputPrefix + portNodeTemplateId;
if (inputName.startsWith(portNodeTemplateIdPrefix)) {
@@ -2636,17 +2675,17 @@ public class UnifiedCompositionService {
TranslationContext context) {
String nodeTemplateIdToRemove = entity.getNodeTemplateId();
Map<String, NodeTemplate> nodeTemplates =
- serviceTemplate.getTopology_template().getNode_templates();
+ serviceTemplate.getTopology_template().getNode_templates();
NodeTemplate nodeTemplateToRemove =
- nodeTemplates.get(nodeTemplateIdToRemove);
+ nodeTemplates.get(nodeTemplateIdToRemove);
nodeTemplates.remove(nodeTemplateIdToRemove);
context.addCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
- nodeTemplateIdToRemove,
- entity.getClass() == ComputeTemplateConsolidationData.class
- ? UnifiedCompositionEntity.Compute
- : UnifiedCompositionEntity.Port,
- nodeTemplateToRemove);
+ nodeTemplateIdToRemove,
+ entity.getClass() == ComputeTemplateConsolidationData.class
+ ? UnifiedCompositionEntity.Compute
+ : UnifiedCompositionEntity.Port,
+ nodeTemplateToRemove);
}
@@ -2654,13 +2693,13 @@ public class UnifiedCompositionService {
ServiceTemplate serviceTemplate,
TranslationContext context) {
NodeTemplate cleanedNodeTemplate =
- context
- .getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
- cleanedNodeTemplateId);
+ context
+ .getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
+ cleanedNodeTemplateId);
String typeToRemove = cleanedNodeTemplate.getType();
if (Objects.nonNull(typeToRemove)
- && serviceTemplate.getNode_types().containsKey(typeToRemove)) {
+ && serviceTemplate.getNode_types().containsKey(typeToRemove)) {
serviceTemplate.getNode_types().remove(typeToRemove);
}
}
@@ -2669,25 +2708,25 @@ public class UnifiedCompositionService {
EntityConsolidationData entity,
TranslationContext context) {
Map<String, GroupDefinition> groups = serviceTemplate.getTopology_template()
- .getGroups() == null ? new HashMap<>()
- : serviceTemplate.getTopology_template().getGroups();
+ .getGroups() == null ? new HashMap<>()
+ : serviceTemplate.getTopology_template().getGroups();
String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
String nodeRelatedAbstractNodeId =
- context.getUnifiedAbstractNodeTemplateId(serviceTemplate, entity.getNodeTemplateId());
+ context.getUnifiedAbstractNodeTemplateId(serviceTemplate, entity.getNodeTemplateId());
for (Map.Entry<String, GroupDefinition> groupEntry : groups.entrySet()) {
GroupDefinition groupDefinition = groupEntry.getValue();
if (isHeatStackGroup(groupDefinition.getType())) {
updateGroupMembersWithNewUnifiedNodeTemplateId(entity, nodeRelatedAbstractNodeId,
- groupEntry);
+ groupEntry);
}
}
}
private void updateGroupMembersWithNewUnifiedNodeTemplateId(
- EntityConsolidationData entity,
- String newNodetemplateId,
- Map.Entry<String, GroupDefinition> groupEntry) {
+ EntityConsolidationData entity,
+ String newNodetemplateId,
+ Map.Entry<String, GroupDefinition> groupEntry) {
List<String> members = groupEntry.getValue().getMembers();
if (members.contains(entity.getNodeTemplateId())) {
members.remove(entity.getNodeTemplateId());
@@ -2698,37 +2737,56 @@ public class UnifiedCompositionService {
groupEntry.getValue().setMembers(members);
}
+ private void updateSubstitutableNodeTemplateRequirements(ServiceTemplate serviceTemplate,
+ ServiceTemplate substitutionServiceTemplate){
+ if(Objects.isNull(substitutionServiceTemplate.getTopology_template())){
+ return;
+ }
+
+ SubstitutionMapping substitution_mappings =
+ substitutionServiceTemplate.getTopology_template().getSubstitution_mappings();
+
+ if(Objects.isNull(substitution_mappings)){
+ return;
+ }
+
+ String node_type = substitution_mappings.getNode_type();
+ Map<String, List<String>> requirements = substitution_mappings.getRequirements();
+
+
+ }
+
private void updateSubstitutionMapping(ServiceTemplate serviceTemplate,
TranslationContext context) {
SubstitutionMapping substitutionMappings =
- DataModelUtil.getSubstitutionMappings(serviceTemplate);
+ DataModelUtil.getSubstitutionMappings(serviceTemplate);
if (Objects.nonNull(substitutionMappings)) {
if (Objects.nonNull(substitutionMappings.getRequirements())) {
updateSubstitutionMappingRequirements(substitutionMappings.getRequirements(),
- serviceTemplate, context);
+ serviceTemplate, context);
}
if (Objects.nonNull(substitutionMappings.getCapabilities())) {
updateSubstitutionMappingCapabilities(substitutionMappings.getCapabilities(),
- serviceTemplate, context);
+ serviceTemplate, context);
}
}
}
private void updateSubstitutionMappingRequirements(Map<String, List<String>>
- substitutionMappingRequirements,
+ substitutionMappingRequirements,
ServiceTemplate serviceTemplate,
TranslationContext context) {
for (Map.Entry<String, List<String>> entry : substitutionMappingRequirements.entrySet()) {
List<String> requirement = entry.getValue();
String oldNodeTemplateId = requirement.get(0);
String newAbstractNodeTemplateId = context.getUnifiedAbstractNodeTemplateId(serviceTemplate,
- requirement.get(0));
+ requirement.get(0));
String newSubstitutionNodeTemplateId = context.getUnifiedSubstitutionNodeTemplateId(
- serviceTemplate, oldNodeTemplateId);
+ serviceTemplate, oldNodeTemplateId);
if (Objects.nonNull(newAbstractNodeTemplateId)
- && Objects.nonNull(newSubstitutionNodeTemplateId)) {
+ && Objects.nonNull(newSubstitutionNodeTemplateId)) {
requirement.set(0, newAbstractNodeTemplateId);
String newRequirementValue = requirement.get(1) + "_" + newSubstitutionNodeTemplateId;
requirement.set(1, newRequirementValue);
@@ -2737,18 +2795,18 @@ public class UnifiedCompositionService {
}
private void updateSubstitutionMappingCapabilities(Map<String, List<String>>
- substitutionMappingCapabilities,
+ substitutionMappingCapabilities,
ServiceTemplate serviceTemplate,
TranslationContext context) {
for (Map.Entry<String, List<String>> entry : substitutionMappingCapabilities.entrySet()) {
List<String> capability = entry.getValue();
String oldNodeTemplateId = capability.get(0);
String newAbstractNodeTemplateId = context.getUnifiedAbstractNodeTemplateId(serviceTemplate,
- capability.get(0));
+ capability.get(0));
String newSubstitutionNodeTemplateId = context.getUnifiedSubstitutionNodeTemplateId(
- serviceTemplate, oldNodeTemplateId);
+ serviceTemplate, oldNodeTemplateId);
if (Objects.nonNull(newAbstractNodeTemplateId)
- && Objects.nonNull(newSubstitutionNodeTemplateId)) {
+ && Objects.nonNull(newSubstitutionNodeTemplateId)) {
capability.set(0, newAbstractNodeTemplateId);
String newRequirementValue = capability.get(1) + "_" + newSubstitutionNodeTemplateId;
capability.set(1, newRequirementValue);
@@ -2760,16 +2818,16 @@ public class UnifiedCompositionService {
EntityConsolidationData entity,
TranslationContext context) {
Map<String, GroupDefinition> groups = serviceTemplate.getTopology_template()
- .getGroups() == null ? new HashMap<>() : serviceTemplate.getTopology_template().getGroups();
+ .getGroups() == null ? new HashMap<>() : serviceTemplate.getTopology_template().getGroups();
String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
Optional<String> nestedNodeTemplateId =
- context.getUnifiedNestedNodeTemplateId(serviceTemplateFileName, entity.getNodeTemplateId());
+ context.getUnifiedNestedNodeTemplateId(serviceTemplateFileName, entity.getNodeTemplateId());
if (nestedNodeTemplateId.isPresent()) {
for (Map.Entry<String, GroupDefinition> groupEntry : groups.entrySet()) {
GroupDefinition groupDefinition = groupEntry.getValue();
if (isHeatStackGroup(groupDefinition.getType())) {
updateGroupMembersWithNewUnifiedNodeTemplateId(entity, nestedNodeTemplateId.get(),
- groupEntry);
+ groupEntry);
}
}
}
@@ -2780,7 +2838,7 @@ public class UnifiedCompositionService {
ServiceTemplate nestedServiceTemplate,
TranslationContext context) {
NodeTemplate nestedNodeTemplate = DataModelUtil.getNodeTemplate(mainServiceTemplate,
- nestedNodeTemplateId);
+ nestedNodeTemplateId);
if (Objects.isNull(nestedNodeTemplate)) {
return;
}
@@ -2788,13 +2846,124 @@ public class UnifiedCompositionService {
updateNestedNodeTemplateProperties(nestedServiceTemplate, nestedNodeTemplate, context);
Optional<String> unifiedNestedNodeTypeId = context
- .getUnifiedNestedNodeTypeId(
- ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME),
- nestedNodeTemplate.getType());
+ .getUnifiedNestedNodeTypeId(
+ ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME),
+ nestedNodeTemplate.getType());
unifiedNestedNodeTypeId
- .ifPresent(unifiedNestedNodeTypeIdVal -> updateNestedNodeTemplate(
- unifiedNestedNodeTypeIdVal, nestedNodeTemplateId, nestedNodeTemplate,
- mainServiceTemplate, context));
+ .ifPresent(unifiedNestedNodeTypeIdVal -> updateNestedNodeTemplate(
+ unifiedNestedNodeTypeIdVal, nestedNodeTemplateId, nestedNodeTemplate,
+ mainServiceTemplate, context));
+
+ updateNodeTemplateRequirements(nestedNodeTemplateId, mainServiceTemplate,
+ nestedServiceTemplate, context);
+
+ //updateNodeDependencyRequirement(mainServiceTemplate, context, nestedNodeTemplate);
+ }
+
+ public void updateNodeTemplateRequirements(String nestedNodeTemplateId,
+ ServiceTemplate mainServiceTemplate,
+ ServiceTemplate nestedServiceTemplate,
+ TranslationContext context){
+ String computeNodeType = nestedServiceTemplate.getNode_types().keySet().iterator().next();
+ NodeTemplate nestedNtFromMain =
+ mainServiceTemplate.getTopology_template().getNode_templates().get(nestedNodeTemplateId);
+ ServiceTemplate globalSubstitutionServiceTemplate =
+ context.getGlobalSubstitutionServiceTemplate();
+
+ if(Objects.isNull(computeNodeType)){
+ return;
+ }
+
+ NodeType nestedNodeType =
+ globalSubstitutionServiceTemplate.getNode_types().get(computeNodeType);
+
+ if(Objects.isNull(nestedNodeType)){
+ return;
+ }
+
+ List<Map<String, RequirementDefinition>> requirements = nestedNodeType.getRequirements();
+
+ if(CollectionUtils.isEmpty(nestedNtFromMain.getRequirements())){
+ nestedNtFromMain.setRequirements(new ArrayList<>());
+ }
+
+ if(CollectionUtils.isEmpty(requirements)) {
+ return;
+ }
+
+ updateNodeTemplateRequirements(nestedNtFromMain, requirements);
+ }
+
+ private void updateNodeTemplateRequirements(NodeTemplate nestedNtFromMain,
+ List<Map<String, RequirementDefinition>> requirements) {
+ for(Map<String, RequirementDefinition> requirementDefinitionMap : requirements){
+ Map<String, RequirementAssignment> currReqAssignmentMap = new HashMap<>();
+ for(Map.Entry<String, RequirementDefinition> requirementDefinitionEntry :
+ requirementDefinitionMap.entrySet()){
+ RequirementAssignment requirementAssignment =
+ getRequirementAssignmentFromDefinition(requirementDefinitionEntry);
+ currReqAssignmentMap.put(requirementDefinitionEntry.getKey(), requirementAssignment);
+ }
+
+ if(!nestedNtFromMain.getRequirements().contains(currReqAssignmentMap)) {
+ nestedNtFromMain.getRequirements().add(new HashMap(currReqAssignmentMap));
+ }
+ }
+
+ List<Map<String, RequirementAssignment>> reqsToRemove = new ArrayList<>();
+ for(Map<String, RequirementAssignment> requirementDefinitionMap : nestedNtFromMain.getRequirements()) {
+ if (requirementDefinitionMap.containsKey("dependency")) {
+ reqsToRemove.add(requirementDefinitionMap);
+ }
+ }
+
+ nestedNtFromMain.getRequirements().removeAll(reqsToRemove);
+ }
+
+ private RequirementAssignment getRequirementAssignmentFromDefinition(
+ Map.Entry<String, RequirementDefinition> requirementDefinitionEntry) {
+
+ RequirementAssignment requirementAssignment = new RequirementAssignment();
+ if(requirementDefinitionEntry.getValue() instanceof RequirementDefinition) {
+ requirementAssignment.setCapability(requirementDefinitionEntry.getValue().getCapability());
+ requirementAssignment.setNode(requirementDefinitionEntry.getValue().getNode());
+ requirementAssignment.setRelationship(requirementDefinitionEntry.getValue().getRelationship());
+ }
+ else if(requirementDefinitionEntry.getValue() instanceof Map){
+ Map<String, Object> reqAsMap = (Map<String, Object>) requirementDefinitionEntry.getValue();
+ requirementAssignment.setCapability((String) reqAsMap.get("capability"));
+ requirementAssignment.setNode((String) reqAsMap.get("node"));
+ requirementAssignment.setRelationship((String) reqAsMap.get("relationship"));
+ }
+ return requirementAssignment;
+ }
+
+ private void updateNodeDependencyRequirement(ServiceTemplate mainServiceTemplate,
+ TranslationContext context,
+ NodeTemplate nestedNodeTemplate) {
+ List<Map<String, RequirementAssignment>> requirements = nestedNodeTemplate.getRequirements();
+ for(int i = 0; i < requirements.size(); i++){
+ Map<String, RequirementAssignment> requirementAssignmentMap = requirements.get(i);
+ Map<String, RequirementAssignment> updatedMap = new HashMap<>();
+ for(Map.Entry<String, RequirementAssignment> requirementAssignmentEntry :
+ requirementAssignmentMap.entrySet()){
+ if(requirementAssignmentEntry.getKey().equals("dependency")){
+ Optional<String> newReqAssignmentDependencyId =
+ context.getNewReqAssignmentDependencyId(ToscaUtil.getServiceTemplateFileName
+ (mainServiceTemplate), requirementAssignmentEntry.getValue());
+
+ if(newReqAssignmentDependencyId.isPresent()){
+ updatedMap.put(newReqAssignmentDependencyId.get(), requirementAssignmentEntry
+ .getValue());
+ }
+ }else{
+ updatedMap.put(requirementAssignmentEntry.getKey(), requirementAssignmentEntry
+ .getValue());
+ }
+ }
+
+ requirements.add(i, updatedMap);
+ }
}
private void updateNestedNodeTemplateProperties(ServiceTemplate nestedServiceTemplate,
@@ -2802,8 +2971,8 @@ public class UnifiedCompositionService {
TranslationContext context) {
Map<String, Object> newPropertyInputParamIds =
- context.getAllNewPropertyInputParamIdsPerNodeTenplateId(ToscaUtil
- .getServiceTemplateFileName(nestedServiceTemplate));
+ context.getAllNewPropertyInputParamIdsPerNodeTenplateId(ToscaUtil
+ .getServiceTemplateFileName(nestedServiceTemplate));
for (Map.Entry<String, Object> entry : newPropertyInputParamIds.entrySet()) {
if (Objects.nonNull(entry.getValue())) {
@@ -2813,24 +2982,24 @@ public class UnifiedCompositionService {
}
String subNodeType =
- nestedServiceTemplate.getTopology_template().getSubstitution_mappings().getNode_type();
+ nestedServiceTemplate.getTopology_template().getSubstitution_mappings().getNode_type();
nestedNodeTemplate.setType(subNodeType);
}
private void handleSubstitutionMappingInNestedServiceTemplate(
- String newNestedNodeType,
- ServiceTemplate nestedServiceTemplate,
- TranslationContext context) {
+ String newNestedNodeType,
+ ServiceTemplate nestedServiceTemplate,
+ TranslationContext context) {
if (Objects.isNull(newNestedNodeType)) {
return;
}
Set<String> relatedNestedNodeTypeIds =
- context.getAllRelatedNestedNodeTypeIds();
+ context.getAllRelatedNestedNodeTypeIds();
- SubstitutionMapping substitutionMappings =
- nestedServiceTemplate.getTopology_template().getSubstitution_mappings();
+ SubstitutionMapping substitutionMappings =
+ nestedServiceTemplate.getTopology_template().getSubstitution_mappings();
if(!relatedNestedNodeTypeIds.contains(substitutionMappings.getNode_type())) {
substitutionMappings.setNode_type(newNestedNodeType);
}
@@ -2843,43 +3012,43 @@ public class UnifiedCompositionService {
TranslationContext context) {
String mainSTName = ToscaUtil.getServiceTemplateFileName(mainServiceTemplate);
String globalSTName =
- ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+ ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
int index =
- context.getHandledNestedComputeNodeTemplateIndex(globalSTName, newNestedNodeTypeId);
+ context.getHandledNestedComputeNodeTemplateIndex(globalSTName, newNestedNodeTypeId);
String newNodeTemplateId =
- Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX + getComputeTypeSuffix(newNestedNodeTypeId)
- + "_" + index;
+ Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX + getComputeTypeSuffix(newNestedNodeTypeId)
+ + "_" + index;
nestedNodeTemplate.setType(newNestedNodeTypeId);
mainServiceTemplate.getTopology_template().getNode_templates().remove(nestedNodeTemplateId);
mainServiceTemplate.getTopology_template().getNode_templates()
- .put(newNodeTemplateId, nestedNodeTemplate);
+ .put(newNodeTemplateId, nestedNodeTemplate);
context.addUnifiedNestedNodeTemplateId(mainSTName, nestedNodeTemplateId, newNodeTemplateId);
}
private void handleNestedNodeTypesInGlobalSubstituteServiceTemplate(
- String origNestedNodeTypeId,
- String newNestedNodeTypeId,
- ServiceTemplate globalSubstitutionServiceTemplate,
- TranslationContext context) {
+ String origNestedNodeTypeId,
+ String newNestedNodeTypeId,
+ ServiceTemplate globalSubstitutionServiceTemplate,
+ TranslationContext context) {
Set<String> relatedNestedNodeTypeIds =
- context.getAllRelatedNestedNodeTypeIds();
+ context.getAllRelatedNestedNodeTypeIds();
Map<String, NodeType> nodeTypes = globalSubstitutionServiceTemplate.getNode_types();
if (!relatedNestedNodeTypeIds.contains(origNestedNodeTypeId)) {
NodeType nested = DataModelUtil.getNodeType(globalSubstitutionServiceTemplate,
- origNestedNodeTypeId);
+ origNestedNodeTypeId);
setNewValuesForNestedNodeType(origNestedNodeTypeId, newNestedNodeTypeId, nested, nodeTypes);
} else {
NodeType nested =
- (NodeType) DataModelUtil.getClonedObject(
- DataModelUtil.getNodeType(globalSubstitutionServiceTemplate, origNestedNodeTypeId));
+ (NodeType) DataModelUtil.getClonedObject(
+ DataModelUtil.getNodeType(globalSubstitutionServiceTemplate, origNestedNodeTypeId));
nested.setDerived_from(ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE);
nodeTypes.put(newNestedNodeTypeId, nested);
}
context.addUnifiedNestedNodeTypeId(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
- origNestedNodeTypeId, newNestedNodeTypeId);
+ origNestedNodeTypeId, newNestedNodeTypeId);
}
private void setNewValuesForNestedNodeType(String origNestedNodeType,
@@ -2897,22 +3066,22 @@ public class UnifiedCompositionService {
ServiceTemplate nestedServiceTemplate,
TranslationContext context) {
FileComputeConsolidationData fileComputeConsolidationData =
- context.getConsolidationData().getComputeConsolidationData()
- .getFileComputeConsolidationData(
- ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
+ context.getConsolidationData().getComputeConsolidationData()
+ .getFileComputeConsolidationData(
+ ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
if (Objects.nonNull(fileComputeConsolidationData)) {
String nestedNodeTypePrefix = ToscaNodeType.ABSTRACT_NODE_TYPE_PREFIX + "heat.";
return Optional
- .of(nestedNodeTypePrefix + getComputeTypeInNestedFile(fileComputeConsolidationData));
+ .of(nestedNodeTypePrefix + getComputeTypeInNestedFile(fileComputeConsolidationData));
}
return Optional.empty();
}
private String getComputeTypeInNestedFile(
- FileComputeConsolidationData fileComputeConsolidationData) {
+ FileComputeConsolidationData fileComputeConsolidationData) {
List<TypeComputeConsolidationData> typeComputeConsolidationDatas =
- new ArrayList<>(fileComputeConsolidationData.getAllTypeComputeConsolidationData());
+ new ArrayList<>(fileComputeConsolidationData.getAllTypeComputeConsolidationData());
if (typeComputeConsolidationDatas.size() == 0) {
return null;
} else {
@@ -2926,20 +3095,20 @@ public class UnifiedCompositionService {
String serviceTemplateFileName,
NodeTemplate abstractNodeTemplate) {
Map<String, Object> properties =
- abstractNodeTemplate == null || abstractNodeTemplate.getProperties() == null
- ? new HashMap<>()
- : abstractNodeTemplate.getProperties();
+ abstractNodeTemplate == null || abstractNodeTemplate.getProperties() == null
+ ? new HashMap<>()
+ : abstractNodeTemplate.getProperties();
for (Object propertyValue : properties.values()) {
List<List<Object>> getAttrList = extractGetAttrFunction(propertyValue);
for (List<Object> getAttrFuncValue : getAttrList) {
String origNodeTemplateId = (String) getAttrFuncValue.get(0);
Optional<String> nestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(ToscaUtil
- .getServiceTemplateFileName(serviceTemplate), origNodeTemplateId);
+ .getServiceTemplateFileName(serviceTemplate), origNodeTemplateId);
if (nestedNodeTemplateId.isPresent()) {
getAttrFuncValue.set(0, nestedNodeTemplateId.get());
} else {
replaceGetAttrNodeIdAndAttrName(serviceTemplate, context, serviceTemplateFileName,
- getAttrFuncValue);
+ getAttrFuncValue);
}
}
}
@@ -2953,17 +3122,17 @@ public class UnifiedCompositionService {
String attributeName = (String) getAttrFuncValue.get(1);
String unifiedAbstractNodeTemplateId =
- context.getUnifiedAbstractNodeTemplateId(serviceTemplate, origNodeTemplateId);
+ context.getUnifiedAbstractNodeTemplateId(serviceTemplate, origNodeTemplateId);
if (Objects.isNull(unifiedAbstractNodeTemplateId)) {
return;
}
String newNodeTemplateId =
- getNewNodeTemplateId(origNodeTemplateId, serviceTemplateFileName, serviceTemplate, context);
+ getNewNodeTemplateId(origNodeTemplateId, serviceTemplateFileName, serviceTemplate, context);
String newSubstitutionOutputParameterId =
- getNewSubstitutionOutputParameterId(newNodeTemplateId, attributeName);
+ getNewSubstitutionOutputParameterId(newNodeTemplateId, attributeName);
getAttrFuncValue.set(0, unifiedAbstractNodeTemplateId);
getAttrFuncValue.set(1, newSubstitutionOutputParameterId);
@@ -2973,11 +3142,11 @@ public class UnifiedCompositionService {
ServiceTemplate serviceTemplate,
TranslationContext context) {
NodeTemplate computeNodeTemplate =
- DataModelUtil.getNodeTemplate(serviceTemplate, origNodeTemplateId);
+ DataModelUtil.getNodeTemplate(serviceTemplate, origNodeTemplateId);
if (computeNodeTemplate == null) {
computeNodeTemplate =
- context.getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
- origNodeTemplateId);
+ context.getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
+ origNodeTemplateId);
}
return computeNodeTemplate;
}
@@ -2985,14 +3154,14 @@ public class UnifiedCompositionService {
private String handleIdOfPort(String origNodeTemplateId, String serviceTemplateFileName,
ConsolidationData consolidationData) {
Optional<Pair<String, ComputeTemplateConsolidationData>>
- computeTypeAndComputeTemplateByPortId =
- getComputeTypeAndComputeTemplateByPortId(origNodeTemplateId, serviceTemplateFileName,
- consolidationData);
+ computeTypeAndComputeTemplateByPortId =
+ getComputeTypeAndComputeTemplateByPortId(origNodeTemplateId, serviceTemplateFileName,
+ consolidationData);
if (computeTypeAndComputeTemplateByPortId.isPresent()) {
Pair<String, ComputeTemplateConsolidationData> computeIdToComputeData =
- computeTypeAndComputeTemplateByPortId.get();
+ computeTypeAndComputeTemplateByPortId.get();
return getNewPortNodeTemplateId(origNodeTemplateId, computeIdToComputeData.getKey(),
- computeIdToComputeData.getValue());
+ computeIdToComputeData.getValue());
}
return null;
@@ -3002,15 +3171,15 @@ public class UnifiedCompositionService {
getComputeTypeAndComputeTemplateByPortId(String portId, String serviceTemplateFileName,
ConsolidationData consolidationData) {
FileComputeConsolidationData fileComputeConsolidationData =
- consolidationData.getComputeConsolidationData()
- .getFileComputeConsolidationData(serviceTemplateFileName);
+ consolidationData.getComputeConsolidationData()
+ .getFileComputeConsolidationData(serviceTemplateFileName);
Set<String> computeTypes =
- fileComputeConsolidationData.getAllComputeTypes();
+ fileComputeConsolidationData.getAllComputeTypes();
for (String computeType : computeTypes) {
Collection<ComputeTemplateConsolidationData> computeTemplateConsolidationDatas =
- fileComputeConsolidationData.getTypeComputeConsolidationData(computeType)
- .getAllComputeTemplateConsolidationData();
+ fileComputeConsolidationData.getTypeComputeConsolidationData(computeType)
+ .getAllComputeTemplateConsolidationData();
for (ComputeTemplateConsolidationData compute : computeTemplateConsolidationDatas) {
if (ConsolidationDataUtil.isComputeReferenceToPortId(compute, portId)) {
@@ -3027,16 +3196,16 @@ public class UnifiedCompositionService {
String serviceTemplateFileName,
TranslationContext context) {
UnifiedSubstitutionData unifiedSubstitutionData =
- context.getUnifiedSubstitutionData().get(serviceTemplateFileName);
+ context.getUnifiedSubstitutionData().get(serviceTemplateFileName);
if (Objects.isNull(unifiedSubstitutionData)) {
return false;
}
UnifiedCompositionEntity actualUnifiedCompositionEntity =
- unifiedSubstitutionData.getCleanedNodeTemplateCompositionEntity(id);
+ unifiedSubstitutionData.getCleanedNodeTemplateCompositionEntity(id);
return actualUnifiedCompositionEntity == null ? false
- : actualUnifiedCompositionEntity.equals(expectedUnifiedCompositionEntity);
+ : actualUnifiedCompositionEntity.equals(expectedUnifiedCompositionEntity);
}
private boolean isHeatStackGroup(String groupType) {
@@ -3050,14 +3219,14 @@ public class UnifiedCompositionService {
String portNodeTemplateId) {
//Get the input prefix to extract the property name from the input name
String portInputPrefix = getPortInputPrefix(
- portNodeTemplateId, portInputType);
+ portNodeTemplateId, portInputType);
//Get the property name from the input
Optional<String> propertyName = getPropertyNameFromInput(inputName,
- UnifiedCompositionEntity.Port, computeType, portInputPrefix);
+ UnifiedCompositionEntity.Port, computeType, portInputPrefix);
//Get the property value from the node template
if (propertyName.isPresent()) {
NodeTemplate portNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
- portNodeTemplateId);
+ portNodeTemplateId);
if (Objects.nonNull(portNodeTemplate)) {
return getPropertyValueFromNodeTemplate(propertyName.get(), portNodeTemplate);
}
@@ -3066,9 +3235,9 @@ public class UnifiedCompositionService {
}
private Optional<String> getPortTypeFromInput(
- String inputName,
- String portNodeTemplateId,
- ComputeTemplateConsolidationData computeTemplateConsolidationData) {
+ String inputName,
+ String portNodeTemplateId,
+ ComputeTemplateConsolidationData computeTemplateConsolidationData) {
String portTypeFromInput = null;
String portInputPrefix = UnifiedCompositionEntity.Port.name().toLowerCase() + "_";
String portNodeTemplateIdPrefix = portInputPrefix + portNodeTemplateId;
@@ -3087,14 +3256,14 @@ public class UnifiedCompositionService {
}
private Object getComputePropertyValue(
- String inputName,
- ServiceTemplate serviceTemplate,
- ComputeTemplateConsolidationData computeTemplateConsolidationData) {
+ String inputName,
+ ServiceTemplate serviceTemplate,
+ ComputeTemplateConsolidationData computeTemplateConsolidationData) {
NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
- computeTemplateConsolidationData.getNodeTemplateId());
+ computeTemplateConsolidationData.getNodeTemplateId());
String nodeType = getComputeTypeSuffix(nodeTemplate.getType());
Optional<String> propertyName =
- getPropertyNameFromInput(inputName, UnifiedCompositionEntity.Compute, nodeType, null);
+ getPropertyNameFromInput(inputName, UnifiedCompositionEntity.Compute, nodeType, null);
if (propertyName.isPresent()) {
return getPropertyValueFromNodeTemplate(propertyName.get(), nodeTemplate);
}
@@ -3107,13 +3276,13 @@ public class UnifiedCompositionService {
EntityConsolidationData entity,
TranslationContext context) {
NodeTemplate nodeTemplate =
- getNodeTemplate(entity.getNodeTemplateId(), serviceTemplate, context);
+ getNodeTemplate(entity.getNodeTemplateId(), serviceTemplate, context);
Object propertyValueFromNodeTemplate =
- getPropertyValueFromNodeTemplate(identicalValuePropertyName, nodeTemplate);
+ getPropertyValueFromNodeTemplate(identicalValuePropertyName, nodeTemplate);
return Objects.isNull(propertyValueFromNodeTemplate) ? Optional.empty()
- : Optional.of(propertyValueFromNodeTemplate);
+ : Optional.of(propertyValueFromNodeTemplate);
}
private UnifiedCompositionEntity getInputCompositionEntity(String inputName) {
@@ -3128,14 +3297,14 @@ public class UnifiedCompositionService {
}
private Optional<String> getPropertyNameFromInput(
- String inputName,
- UnifiedCompositionEntity compositionEntity,
- String computeType, String portInputPrefix) {
+ String inputName,
+ UnifiedCompositionEntity compositionEntity,
+ String computeType, String portInputPrefix) {
String propertyName = null;
switch (compositionEntity) {
case Compute:
propertyName = inputName.substring(inputName.lastIndexOf(computeType)
- + computeType.length() + 1);
+ + computeType.length() + 1);
break;
case Port:
if (inputName.startsWith(portInputPrefix)) {
@@ -3149,8 +3318,8 @@ public class UnifiedCompositionService {
}
private String getPortInputPrefix(
- String portNodeTemplateId,
- PortInputType portInputType) {
+ String portNodeTemplateId,
+ PortInputType portInputType) {
String portInputPrefix = UnifiedCompositionEntity.Port.name().toLowerCase() + "_";
String portType = ConsolidationDataUtil.getPortType(portNodeTemplateId);
if (portInputType == PortInputType.NodeTemplateId) {
@@ -3166,14 +3335,14 @@ public class UnifiedCompositionService {
TranslationContext context) {
List<String> identicalValuePropertyList =
- consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
+ consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
StringBuilder builder = getPropertyValueStringBuilder(unifiedCompositionEntity);
boolean isMatchingProperty = Pattern.matches(builder.toString(), inputName);
return (isMatchingProperty
- && isPropertyFromIdenticalValuesList(inputName, unifiedCompositionEntity,
- identicalValuePropertyList));
+ && isPropertyFromIdenticalValuesList(inputName, unifiedCompositionEntity,
+ identicalValuePropertyList));
}
private boolean isPropertyFromIdenticalValuesList(String inputName,
@@ -3182,11 +3351,11 @@ public class UnifiedCompositionService {
switch (unifiedCompositionEntity) {
case Compute:
return identicalValuePropertyList.contains(getIdenticalValuePropertyName(inputName,
- unifiedCompositionEntity, null).get());
+ unifiedCompositionEntity, null).get());
case Other:
return identicalValuePropertyList.contains(getIdenticalValuePropertyName(inputName,
- unifiedCompositionEntity, null).get());
+ unifiedCompositionEntity, null).get());
case Port:
return getPortPropertyNameFromInput(inputName, identicalValuePropertyList).isPresent();
@@ -3207,7 +3376,7 @@ public class UnifiedCompositionService {
}
private StringBuilder getPropertyValueStringBuilder(
- UnifiedCompositionEntity unifiedCompositionEntity) {
+ UnifiedCompositionEntity unifiedCompositionEntity) {
switch (unifiedCompositionEntity) {
case Compute:
@@ -3251,7 +3420,7 @@ public class UnifiedCompositionService {
case Port:
return getPortPropertyNameFromInput(input, consolidationService
- .getPropertiesWithIdenticalVal(unifiedCompositionEntity, context));
+ .getPropertiesWithIdenticalVal(unifiedCompositionEntity, context));
default:
return Optional.empty();
@@ -3269,39 +3438,39 @@ public class UnifiedCompositionService {
}
private Map<String, UnifiedCompositionEntity> getAllConsolidationNodeTemplateIdAndType(
- List<UnifiedCompositionData> unifiedCompositionDataList) {
+ List<UnifiedCompositionData> unifiedCompositionDataList) {
Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType = new HashMap<>();
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
ComputeTemplateConsolidationData computeTemplateConsolidationData =
- unifiedCompositionData.getComputeTemplateConsolidationData();
+ unifiedCompositionData.getComputeTemplateConsolidationData();
if (Objects.nonNull(computeTemplateConsolidationData)) {
consolidationNodeTemplateIdAndType
- .put(computeTemplateConsolidationData.getNodeTemplateId(),
- UnifiedCompositionEntity.Compute);
+ .put(computeTemplateConsolidationData.getNodeTemplateId(),
+ UnifiedCompositionEntity.Compute);
}
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
- getPortTemplateConsolidationDataList(unifiedCompositionData);
+ getPortTemplateConsolidationDataList(unifiedCompositionData);
for (PortTemplateConsolidationData portTemplateConsolidationData :
- portTemplateConsolidationDataList) {
+ portTemplateConsolidationDataList) {
consolidationNodeTemplateIdAndType.put(portTemplateConsolidationData.getNodeTemplateId(),
- UnifiedCompositionEntity.Port);
+ UnifiedCompositionEntity.Port);
}
NestedTemplateConsolidationData nestedTemplateConsolidationData =
- unifiedCompositionData.getNestedTemplateConsolidationData();
+ unifiedCompositionData.getNestedTemplateConsolidationData();
if (Objects.nonNull(nestedTemplateConsolidationData)) {
consolidationNodeTemplateIdAndType
- .put(nestedTemplateConsolidationData.getNodeTemplateId(),
- UnifiedCompositionEntity.Nested);
+ .put(nestedTemplateConsolidationData.getNodeTemplateId(),
+ UnifiedCompositionEntity.Nested);
}
}
return consolidationNodeTemplateIdAndType;
}
private List<PortTemplateConsolidationData> getPortTemplateConsolidationDataList(
- UnifiedCompositionData unifiedCompositionData) {
+ UnifiedCompositionData unifiedCompositionData) {
return unifiedCompositionData.getPortTemplateConsolidationDataList() == null ? new
- ArrayList<>() : unifiedCompositionData.getPortTemplateConsolidationDataList();
+ ArrayList<>() : unifiedCompositionData.getPortTemplateConsolidationDataList();
}
private enum PortInputType {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java
index 5c2f3db833..43f4065044 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java
@@ -97,10 +97,11 @@ public class TestUtils {
Assert.fail("Invalid expected output files directory");
}
for (int i = 0; i < fileList.length; i++) {
- InputStream serviceTemplateInputStream = FileUtils.getFileInputStream(TestUtils.class
- .getClassLoader().getResource(baseDirPath + fileList[i]));
- ServiceTemplate serviceTemplate = toscaExtensionYamlUtil.yamlToObject
- (serviceTemplateInputStream, ServiceTemplate.class);
+
+ URL resource = TestUtils.class.getClassLoader().getResource(baseDirPath + fileList[i]);
+ ServiceTemplate serviceTemplate = FileUtils.readViaInputStream(resource,
+ stream -> toscaExtensionYamlUtil.yamlToObject(stream, ServiceTemplate.class));
+
serviceTemplateMap.put(fileList[i], serviceTemplate);
}
} catch (Exception e) {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 6bd1ea45c8..236504e1e2 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -923,6 +923,1031 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_1_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ required: true
+ status: SUPPORTED
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ server_group:
+ type: string
+ required: true
+ status: SUPPORTED
+ connectivityChk:
+ type: json
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: the name of security group
+ required: true
+ status: SUPPORTED
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ required: true
+ status: SUPPORTED
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ status: SUPPORTED
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ network.incoming.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pcm_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pcm:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.1c1_scalling_instance:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1c1_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c1_scalling_instance_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_1c1_scalling_instance_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t2_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_1c1_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_1c1_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1c1_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c1_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_1c1_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_1c1_scalling_instance_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_1c1_scalling_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1c1_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_1c1_scalling_instance_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1c1_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ 1c1_scalling_instance_1c1_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
+ 1c1_scalling_instance_instance_name:
+ type: string
+ status: SUPPORTED
+ 1c1_scalling_instance_1c1_t2_port_tenant_id:
+ type: string
+ status: SUPPORTED
+ org.openecomp.resource.vfc.nodes.heat.a_single_1a:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_a_single_1a_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1a_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1a_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_a_single_1a_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_a_single_1a_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_1a_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_a_single_1a_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_a_single_1a_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1a_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ attributes:
+ a_single_1a_instance_name:
+ type: string
+ status: SUPPORTED
+ a_single_1a_1a_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pcma_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -4863,6 +5888,146 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.b_single_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1b_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_b_single_1b_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_b_single_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_b_single_1b_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1b_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1b_t1_port_value_specs:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1b_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_b_single_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ b_single_1b_instance_name:
+ type: string
+ status: SUPPORTED
+ b_single_1b_1b_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.b_single_1b_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -5417,3 +6582,143 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1c2_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_1c2_catalog_instance_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c2_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_1c2_catalog_instance_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_1c2_catalog_instance_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c2_catalog_instance_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_1c2_catalog_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ attributes:
+ 1c2_catalog_instance_instance_name:
+ type: string
+ status: SUPPORTED
+ 1c2_catalog_instance_1c2_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/MainServiceTemplate.yaml
index efa8626f8d..6ea3983b37 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/MainServiceTemplate.yaml
@@ -347,6 +347,28 @@ topology_template:
capability: tosca.capabilities.network.Linkable
node: nested_network
relationship: tosca.relationships.network.LinksTo
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
abstract_1c2_catalog_instance_0:
type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
directives:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
index e44080f340..0adea1712a 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -919,6 +919,1075 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_1_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ required: true
+ status: SUPPORTED
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ server_group:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: the name of security group
+ required: true
+ status: SUPPORTED
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ required: true
+ status: SUPPORTED
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ status: SUPPORTED
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ network.incoming.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pcm_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pcm:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.1c1_scalling_instance:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1c1_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c1_scalling_instance_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_1c1_scalling_instance_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t2_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_1c1_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_1c1_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1c1_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c1_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_1c1_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_1c1_scalling_instance_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_1c1_scalling_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1c1_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ 1c1_scalling_instance_instance_name:
+ type: string
+ status: SUPPORTED
+ 1c1_scalling_instance_1c1_t2_port_tenant_id:
+ type: string
+ status: SUPPORTED
+ org.openecomp.resource.abstract.nodes.heat.nested-no-nova:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ security_group_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ net_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ attributes:
+ output1:
+ type: string
+ status: SUPPORTED
+ requirements:
+ - dependency_dependsOn_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_jsa_security_group:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - port_jsa_security_group:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ end_point_dependsOn_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_dependsOn_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_jsa_security_group:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_dependsOn_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_dependsOn_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.a_single_1a:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1a_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1a_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_a_single_1a_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_a_single_1a_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_1a_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_a_single_1a_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_a_single_1a_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1a_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ attributes:
+ a_single_1a_instance_name:
+ type: string
+ status: SUPPORTED
+ a_single_1a_1a_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pcma_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -4828,6 +5897,140 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.b_single_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1b_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_b_single_1b_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_b_single_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_b_single_1b_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1b_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1b_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_b_single_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ b_single_1b_instance_name:
+ type: string
+ status: SUPPORTED
+ b_single_1b_1b_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.b_single_1b_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -5376,66 +6579,137 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.heat.nested-no-nova:
- derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
properties:
- security_group_name:
+ port_1c2_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_1c2_catalog_instance_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t2_port_subnetpoolid:
type: string
required: true
status: SUPPORTED
- net_name:
+ port_1c2_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c2_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_1c2_catalog_instance_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c2_catalog_instance_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t1_port_network_role_tag:
type: string
required: true
status: SUPPORTED
+ port_1c2_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_1c2_catalog_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
attributes:
- output1:
+ 1c2_catalog_instance_instance_name:
type: string
status: SUPPORTED
- requirements:
- - dependency_dependsOn_network:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - dependency_jsa_security_group:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - port_jsa_security_group:
- capability: tosca.capabilities.Attachment
- node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- relationship: org.openecomp.relationships.AttachesTo
- occurrences:
- - 0
- - UNBOUNDED
- capabilities:
- end_point_dependsOn_network:
- type: tosca.capabilities.Endpoint
- occurrences:
- - 1
- - UNBOUNDED
- link_dependsOn_network:
- type: tosca.capabilities.network.Linkable
- occurrences:
- - 1
- - UNBOUNDED
- feature_jsa_security_group:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- feature_dependsOn_network:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- attachment_dependsOn_network:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
+ 1c2_catalog_instance_1c2_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/MainServiceTemplate.yaml
index cd041a4083..f917dda694 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/MainServiceTemplate.yaml
@@ -166,6 +166,10 @@ topology_template:
capability: tosca.capabilities.Node
node: nestedWithNoNovaHadDependencyToIt
relationship: tosca.relationships.DependsOn
+ - dependency_1b01_single_1B_b_single_1b:
+ capability: tosca.capabilities.Node
+ node: nestedWithNoNovaHadDependencyToIt
+ relationship: tosca.relationships.DependsOn
- link_b_single_1b_1b_t2_port:
capability: tosca.capabilities.network.Linkable
node: b_single_1b_network
@@ -247,10 +251,18 @@ topology_template:
capability: tosca.capabilities.Node
node: nestedWithNoNovaHadDependencyToIt
relationship: tosca.relationships.DependsOn
+ - dependency_1c102_scalling_instance_1C1_1c1_scalling_instance:
+ capability: tosca.capabilities.Node
+ node: nestedWithNoNovaHadDependencyToIt
+ relationship: tosca.relationships.DependsOn
- link_1c1_scalling_instance_1c1_t1_port:
capability: tosca.capabilities.network.Linkable
node: 1c1_scalling_instance_network
relationship: tosca.relationships.network.LinksTo
+ - dependency_1c101_scalling_instance_1C1_1c1_scalling_instance:
+ capability: tosca.capabilities.Node
+ node: nestedWithNoNovaHadDependencyToIt
+ relationship: tosca.relationships.DependsOn
b_single_1b_network:
type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
properties:
@@ -308,10 +320,28 @@ topology_template:
capability: tosca.capabilities.network.Linkable
node: nested_network
relationship: tosca.relationships.network.LinksTo
- - dependency:
+ - dependency_pcm_port_1:
capability: tosca.capabilities.Node
- node: nestedWithNoNovaHadDependencyToIt
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
abstract_1c2_catalog_instance_0:
type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
directives:
@@ -367,6 +397,10 @@ topology_template:
capability: tosca.capabilities.Node
node: nestedWithNoNovaHadDependencyToIt
relationship: tosca.relationships.DependsOn
+ - dependency_1c2_t1_port_0_1c2_catalog_instance_1c2_t1_port:
+ capability: tosca.capabilities.Node
+ node: nestedWithNoNovaHadDependencyToIt
+ relationship: tosca.relationships.DependsOn
- link_1c2_catalog_instance_1c2_t2_port:
capability: tosca.capabilities.network.Linkable
node: 1c2_catalog_instance_network
@@ -428,6 +462,10 @@ topology_template:
capability: tosca.capabilities.Node
node: nestedWithNoNovaHadDependencyToIt
relationship: tosca.relationships.DependsOn
+ - dependency_1c2_t1_port_1_1c2_catalog_instance_1c2_t1_port:
+ capability: tosca.capabilities.Node
+ node: nestedWithNoNovaHadDependencyToIt
+ relationship: tosca.relationships.DependsOn
- link_1c2_catalog_instance_1c2_t2_port:
capability: tosca.capabilities.network.Linkable
node: 1c2_catalog_instance_network
@@ -661,6 +699,10 @@ topology_template:
capability: tosca.capabilities.Node
node: nestedWithNoNovaHadDependencyToIt
relationship: tosca.relationships.DependsOn
+ - dependency_1a_single_1A_a_single_1a:
+ capability: tosca.capabilities.Node
+ node: nestedWithNoNovaHadDependencyToIt
+ relationship: tosca.relationships.DependsOn
- link_a_single_1a_1a_t1_port:
capability: tosca.capabilities.network.Linkable
node: a_single_1a_network
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 14b52bc131..9bf52dfc8d 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -919,6 +919,1012 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_1_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ required: true
+ status: SUPPORTED
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ server_group:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: the name of security group
+ required: true
+ status: SUPPORTED
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ required: true
+ status: SUPPORTED
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ status: SUPPORTED
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ network.incoming.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pcm_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pcm:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.1c1_scalling_instance:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1c1_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c1_scalling_instance_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_1c1_scalling_instance_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t2_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_1c1_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_1c1_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1c1_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c1_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_1c1_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_1c1_scalling_instance_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t2_port_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_1c1_scalling_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1c1_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ 1c1_scalling_instance_instance_name:
+ type: string
+ status: SUPPORTED
+ 1c1_scalling_instance_1c1_t2_port_tenant_id:
+ type: string
+ status: SUPPORTED
+ org.openecomp.resource.vfc.nodes.heat.a_single_1a:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1a_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1a_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_a_single_1a_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_a_single_1a_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_1a_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_a_single_1a_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_a_single_1a_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1a_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ attributes:
+ a_single_1a_instance_name:
+ type: string
+ status: SUPPORTED
+ a_single_1a_1a_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pcma_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -4828,6 +5834,140 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.b_single_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1b_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_b_single_1b_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_b_single_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_b_single_1b_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1b_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1b_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_b_single_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ b_single_1b_instance_name:
+ type: string
+ status: SUPPORTED
+ b_single_1b_1b_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.b_single_1b_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -5376,3 +6516,137 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1c2_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_1c2_catalog_instance_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c2_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_1c2_catalog_instance_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1c2_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c2_catalog_instance_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c2_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c2_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_1c2_catalog_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ attributes:
+ 1c2_catalog_instance_instance_name:
+ type: string
+ status: SUPPORTED
+ 1c2_catalog_instance_1c2_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/MainServiceTemplate.yaml
index e26ec620a8..edc5d992fe 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/MainServiceTemplate.yaml
@@ -260,6 +260,28 @@ topology_template:
capability: tosca.capabilities.network.Linkable
node: nested_network
relationship: tosca.relationships.network.LinksTo
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
abstract_1c2_catalog_instance_0:
type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
directives:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 40d6c556fa..7a2a87119b 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,15 +5,15 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
- org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1:
- derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- server_group:
+ port_pcm_port_0_network_role:
type: string
required: true
status: SUPPORTED
- connectivityChk:
- type: json
+ port_pcm_port_1_network_role_tag:
+ type: string
required: true
status: SUPPORTED
availabilityzone_name:
@@ -21,34 +21,31 @@ node_types:
description: availabilityzone name
required: true
status: SUPPORTED
- oam_net_gw:
- type: string
- description: CPS network gateway
+ port_pcm_port_0_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
pcm_image_name:
type: string
description: PCRF CM image name
required: true
status: SUPPORTED
- security_group_name:
- type: string
- description: the name of security group
+ port_pcm_port_0_order:
+ type: integer
required: true
status: SUPPORTED
- cps_net_ip:
+ port_pcm_port_0_subnetpoolid:
type: string
- description: CPS network ip
required: true
status: SUPPORTED
- pcm_flavor_name:
+ port_pcm_port_1_subnetpoolid:
type: string
- description: flavor name of PCRF CM instance
required: true
status: SUPPORTED
- pcm_vol:
+ port_pcm_port_0_network_role_tag:
type: string
- description: CPS Cluman Cinder Volume
required: true
status: SUPPORTED
pcm_server_name:
@@ -56,61 +53,112 @@ node_types:
description: PCRF CM server name
required: true
status: SUPPORTED
- cps_net_name:
+ cps_net_mask:
type: string
- description: CPS network name
+ description: CPS network mask
required: true
status: SUPPORTED
- cps_net_mask:
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ oam_net_name:
type: string
- description: CPS network mask
+ description: OAM network name
required: true
status: SUPPORTED
- oam_net_ip:
+ port_pcm_port_1_network_role:
type: string
- description: OAM network ip
required: true
status: SUPPORTED
- oam_net_mask:
+ server_group:
type: string
- description: CPS network mask
required: true
status: SUPPORTED
- pcma_flavor_name:
+ connectivityChk:
+ type: json
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ oam_net_gw:
type: string
+ description: CPS network gateway
required: true
status: SUPPORTED
- oam_net_name:
+ security_group_name:
type: string
- description: OAM network name
+ description: the name of security group
required: true
status: SUPPORTED
- pcma_server_name:
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_flavor_name:
type: string
+ description: flavor name of PCRF CM instance
required: true
status: SUPPORTED
- pcma_image_name:
+ pcm_vol:
type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_order:
+ type: integer
required: true
status: SUPPORTED
attributes:
- portId:
+ server_pcm_id:
type: string
+ description: the pcm nova service id
status: SUPPORTED
requirements:
- - dependency_pcm_port_2:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_pcm_port_2:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- dependency_pcm_port_1:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
@@ -124,41 +172,14 @@ node_types:
occurrences:
- 1
- 1
- - dependency_pcm_port_3:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_pcm_port_3:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- - dependency_server_pcma2:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - local_storage_server_pcma2:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
- occurrences:
- - 0
- - UNBOUNDED
- - dependency_server_pcma1:
+ - dependency_server_pcm:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_server_pcma1:
+ - local_storage_server_pcm:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
@@ -185,13 +206,7 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_pcm_port_3:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
- occurrences:
- - 1
- - UNBOUNDED
- network.incoming.packets.rate_pcm_port_2:
+ cpu_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
@@ -209,745 +224,1137 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_server_pcma2:
+ memory_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_pcm_port_0:
+ disk.write.requests_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_pcm_port_3:
+ network.outpoing.packets_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_pcm_port_2:
+ disk.device.iops_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_server_pcma1:
+ memory.resident_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_server_pcma2:
+ disk.device.write.requests_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_server_pcma1:
+ disk.device.usage_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_server_pcma2:
+ disk.allocation_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_server_pcma1:
+ disk.usage_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_server_pcma1:
+ disk.device.write.bytes_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_server_pcma2:
+ disk.root.size_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_server_pcma2:
+ disk.ephemeral.size_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_server_pcma1:
+ disk.device.latency_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_server_pcma1:
+ network.incoming.bytes_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_pcm_port_3:
+ network.incoming.bytes_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_server_pcma2:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ binding_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- binding_pcm_port_3:
+ binding_pcm_port_1:
type: tosca.capabilities.network.Bindable
valid_source_types:
- org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- 0
- UNBOUNDED
- disk.device.latency_server_pcma2:
+ memory.usage_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_server_pcma2:
+ disk.read.requests_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_pcm_port_0:
+ disk.capacity_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_server_pcma1:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_pcm_port_2:
+ disk.read.bytes_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_pcm_port_1:
+ network.outgoing.packets.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_server_pcma1:
+ network.outgoing.packets.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_pcm_port_0:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- binding_pcm_port_1:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- binding_pcm_port_2:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
occurrences:
- - 0
+ - 1
- UNBOUNDED
- network.incoming.bytes_pcm_port_3:
+ network.outgoing.bytes_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcm_port_3:
+ disk.device.read.bytes_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_server_pcma1:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_server_pcma2:
+ network.outgoing.bytes_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcm_port_0:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcm_port_1:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_server_pcma2:
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_server_pcma1:
+ vcpus_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcm_port_2:
+ disk.write.bytes_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_server_pcma2:
+ disk.iops_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_server_pcma1:
+ disk.read.bytes.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_pcm_port_1:
- type: tosca.capabilities.Node
+ disk.device.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_server_pcma1:
- type: tosca.capabilities.network.Bindable
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_pcm_port_0:
+ disk.device.read.bytes.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_server_pcma2:
- type: tosca.capabilities.network.Bindable
+ cpu_util_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_pcm_port_0:
- type: tosca.capabilities.Node
+ disk.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_pcm_port_2:
+ disk.device.write.bytes.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_pcm_port_3:
- type: tosca.capabilities.Node
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- feature_pcm_port_2:
- type: tosca.capabilities.Node
+ cpu.delta_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_pcm_port_1:
+ network.outgoing.bytes.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_pcm_port_0:
- type: tosca.capabilities.Attachment
+ network.incoming.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_pcm_port_1:
- type: tosca.capabilities.Attachment
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_server_pcma2:
+ network.outgoing.bytes.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_pcm_port_2:
- type: tosca.capabilities.Attachment
+ disk.device.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_server_pcma1:
+ network.incoming.packets_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_pcm_port_3:
- type: tosca.capabilities.Attachment
+ instance_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.root.size_server_pcma2:
+ disk.device.write.requests.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.root.size_server_pcma1:
+ disk.latency_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_server_pcma2:
+ disk.device.read.requests_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_server_pcma1:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_server_pcm:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_server_pcma1:
+ network.incoming.bytes.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_server_pcma2:
+ disk.write.bytes.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_server_pcma1:
+ network.incoming.bytes.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_server_pcma2:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ org.openecomp.resource.vfc.nodes.heat.1c12_scalling_instance:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1c1_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_1c12_scalling_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1c1_t1_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_1c12_scalling_instance_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1c1_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_1c12_scalling_instance_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_1c12_scalling_instance_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c1_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ 1c12_scalling_instance_1c1_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
+ 1c12_scalling_instance_instance_name:
+ type: string
+ status: SUPPORTED
+ org.openecomp.resource.vfc.nodes.heat.a_single_2a:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_a_single_2a_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1a_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_1a_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_a_single_2a_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1a_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_a_single_2a_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1a_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_a_single_2a_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_a_single_2a_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ attributes:
+ a_single_2a_instance_name:
+ type: string
+ status: SUPPORTED
+ org.openecomp.resource.abstract.nodes.pcma_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_pcm_port_3_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_2_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_2_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_3_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_3_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_3_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_pcm_port_3_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_2_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_pcm_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_3_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_2_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_2_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_3_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_3_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ port_pcm_port_3_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_2_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_3_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_2_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_2_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_2_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_3_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pcma_server_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_pcma_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_pcma_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pcma_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcma_server_pcm_port_3:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcma_server_pcm_port_3:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
+ - 1
+ - dependency_pcma_server_pcm_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
- UNBOUNDED
- cpu_util_server_pcma1:
+ - link_pcma_server_pcm_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ cpu.delta_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_server_pcma2:
+ scalable_pcma_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_server_pcma2:
- type: tosca.capabilities.Node
+ host_pcma_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- memory.usage_server_pcma2:
+ disk.device.read.requests.rate_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.usage_server_pcma1:
+ disk.usage_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_server_pcma1:
- type: tosca.capabilities.Node
+ network.outgoing.bytes.rate_pcma_server_pcm_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_server_pcma1:
+ disk.read.bytes_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_server_pcma2:
+ disk.iops_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_server_pcma1:
+ network.outgoing.bytes.rate_pcma_server_pcm_port_2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- endpoint_server_pcma2:
+ attachment_pcma_server_pcm_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_pcma_server:
type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_server_pcma2:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_pcma_server:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- endpoint_server_pcma1:
- type: tosca.capabilities.Endpoint.Admin
+ attachment_pcma_server_pcm_port_3:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- cpu.delta_server_pcma1:
+ network.incoming.bytes.rate_pcma_server_pcm_port_2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu.delta_server_pcma2:
+ memory.usage_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_server_pcma2:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ network.outgoing.bytes_pcma_server_pcm_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_server_pcma1:
- type: tosca.capabilities.Container
+ binding_pcma_server_pcm_port_3:
+ type: tosca.capabilities.network.Bindable
valid_source_types:
- - tosca.nodes.SoftwareComponent
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- disk.ephemeral.size_server_pcma1:
+ network.incoming.bytes.rate_pcma_server_pcm_port_3:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.ephemeral.size_server_pcma2:
+ memory_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_server_pcma2:
+ network.outgoing.bytes_pcma_server_pcm_port_2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.latency_server_pcma1:
+ cpu_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.latency_server_pcma2:
+ disk.device.write.bytes.rate_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_server_pcma1:
+ disk.read.bytes.rate_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_server_pcma2:
- type: tosca.capabilities.Scalable
+ network.incoming.packets_pcma_server_pcm_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_server_pcma1:
- type: tosca.capabilities.Scalable
+ binding_pcma_server_pcm_port_2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ os_pcma_server:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_server_pcma1:
+ network.incoming.packets_pcma_server_pcm_port_2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_server_pcma2:
+ network.incoming.packets.rate_pcma_server_pcm_port_3:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_server_pcma2:
+ network.outgoing.packets.rate_pcma_server_pcm_port_3:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_server_pcma1:
+ network.incoming.packets.rate_pcma_server_pcm_port_2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_server_pcma2:
+ disk.device.read.requests_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_server_pcma1:
+ disk.write.bytes.rate_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_server_pcma1:
- type: tosca.capabilities.OperatingSystem
+ network.outgoing.packets.rate_pcma_server_pcm_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_server_pcma2:
- type: tosca.capabilities.OperatingSystem
+ disk.device.write.requests.rate_pcma_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_server_pcma1:
+ cpu_util_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_server_pcma2:
+ disk.device.write.bytes_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_server_pcma1:
+ disk.device.read.bytes.rate_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_server_pcma2:
+ disk.device.usage_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_pcm_port_1:
+ disk.read.requests_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_pcm_port_0:
+ disk.allocation_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_pcm_port_2:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_pcma_server_pcm_port_2:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_pcm_port_0:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_pcma_server_pcm_port_3:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_pcm_port_3:
+ disk.ephemeral.size_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_server_pcma2:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ binding_pcma_server:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_pcm_port_2:
+ disk.latency_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_pcm_port_3:
+ disk.device.write.requests_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_server_pcma1:
+ disk.device.read.bytes_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- vcpus_server_pcma1:
+ disk.device.allocation_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_server_pcma1:
+ memory.resident_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_pcm_port_1:
+ disk.root.size_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- vcpus_server_pcma2:
+ disk.write.bytes_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_server_pcma2:
+ disk.write.requests_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_server_pcma2:
+ network.incoming.bytes_pcma_server_pcm_port_2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_server_pcma1:
+ network.incoming.bytes_pcma_server_pcm_port_3:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_server_pcma2:
+ disk.write.requests.rate_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_server_pcma1:
+ disk.device.iops_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_server_pcma1:
+ instance_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_pcm_port_0:
+ network.outpoing.packets_pcma_server_pcm_port_3:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_server_pcma2:
+ disk.device.latency_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_pcm_port_3:
+ network.outpoing.packets_pcma_server_pcm_port_2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_pcm_port_2:
+ disk.capacity_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_pcm_port_1:
+ disk.device.capacity_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c12_scalling_instance:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
+ org.openecomp.resource.vfc.nodes.heat.1c11_scalling_instance:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
properties:
port_1c1_t1_port_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_1c12_scalling_instance_scheduler_hints:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
port_1c1_t1_port_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- compute_1c12_scalling_instance_name:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
port_1c1_t1_port_vlan_requirements:
type: list
required: true
@@ -970,7 +1377,19 @@ node_types:
type: string
required: true
status: SUPPORTED
- compute_1c12_scalling_instance_user_data_format:
+ compute_1c11_scalling_instance_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_1c11_scalling_instance_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_1c11_scalling_instance_user_data_format:
type: list
required: true
status: SUPPORTED
@@ -992,6 +1411,12 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
+ compute_1c11_scalling_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
port_1c1_t1_port_subnetpoolid:
type: string
required: true
@@ -1004,1473 +1429,1766 @@ node_types:
type: string
required: true
status: SUPPORTED
- compute_1c12_scalling_instance_availability_zone:
+ port_1c1_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c1_t1_port_network:
+ port_1c1_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ 1c11_scalling_instance_instance_name:
+ type: string
+ status: SUPPORTED
+ 1c11_scalling_instance_1c1_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
+ org.openecomp.resource.abstract.nodes.2c2_catalog_instance:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ compute_2c2_catalog_instance_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c1_t1_port_order:
+ port_1c201_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_2c202_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_2c202_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c201_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_2c202_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_2c202_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_2c202_port_order:
type: integer
required: true
status: SUPPORTED
- attributes:
- 1c12_scalling_instance_1c1_t1_port_tenant_id:
+ port_1c201_port_network_role_tag:
type: string
+ required: true
status: SUPPORTED
- 1c12_scalling_instance_instance_name:
+ compute_2c2_catalog_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_2c2_catalog_instance_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c201_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_2c202_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_2c2_catalog_instance_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_2c202_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_2c202_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c201_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c201_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_2c202_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c201_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c201_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c201_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ 2c2_catalog_instance_instance_name:
type: string
status: SUPPORTED
requirements:
- - dependency_1c12_scalling_instance_1c1_t1_port:
+ - dependency_2c2_catalog_instance:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c12_scalling_instance_1c1_t1_port:
+ - local_storage_2c2_catalog_instance:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_2c2_catalog_instance_2c202_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_2c2_catalog_instance_2c202_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- - dependency_1c12_scalling_instance:
+ - dependency_2c2_catalog_instance_1c201_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_1c12_scalling_instance:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
+ - link_2c2_catalog_instance_1c201_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
+ - 1
+ - 1
capabilities:
- cpu_1c12_scalling_instance:
+ network.outgoing.packets.rate_2c2_catalog_instance_1c201_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_1c12_scalling_instance:
+ instance_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_1c12_scalling_instance_1c1_t1_port:
+ disk.write.bytes_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_1c12_scalling_instance:
+ disk.capacity_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_1c12_scalling_instance:
+ disk.device.read.bytes.rate_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_1c12_scalling_instance_1c1_t1_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.device.latency_1c12_scalling_instance:
+ disk.read.bytes_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_1c12_scalling_instance_1c1_t1_port:
+ disk.write.requests.rate_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_1c12_scalling_instance:
+ disk.device.read.bytes_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_1c12_scalling_instance:
+ disk.device.allocation_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_1c12_scalling_instance:
- type: tosca.capabilities.network.Bindable
+ scalable_2c2_catalog_instance:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- endpoint_1c12_scalling_instance:
- type: tosca.capabilities.Endpoint.Admin
+ disk.device.read.requests_2c2_catalog_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_1c12_scalling_instance:
- type: tosca.capabilities.Scalable
+ network.outgoing.bytes_2c2_catalog_instance_1c201_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_1c12_scalling_instance:
- type: tosca.capabilities.OperatingSystem
+ disk.root.size_2c2_catalog_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_1c12_scalling_instance:
+ disk.device.write.requests_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_1c12_scalling_instance:
+ host_2c2_catalog_instance:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_1c12_scalling_instance_1c1_t1_port:
+ binding_2c2_catalog_instance_1c201_port:
type: tosca.capabilities.network.Bindable
valid_source_types:
- org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- 0
- UNBOUNDED
- network.incoming.packets_1c12_scalling_instance_1c1_t1_port:
+ disk.device.write.requests.rate_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_1c12_scalling_instance_1c1_t1_port:
- type: tosca.capabilities.Attachment
+ os_2c2_catalog_instance:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.latency_1c12_scalling_instance:
+ network.outpoing.packets_2c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_1c12_scalling_instance_1c1_t1_port:
+ disk.device.write.bytes.rate_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_1c12_scalling_instance:
+ network.outgoing.bytes.rate_2c2_catalog_instance_1c201_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_1c12_scalling_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ network.incoming.packets.rate_2c2_catalog_instance_1c201_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu.delta_1c12_scalling_instance:
+ disk.latency_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_1c12_scalling_instance:
+ disk.iops_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_1c12_scalling_instance:
+ endpoint_2c2_catalog_instance:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_1c12_scalling_instance:
+ network.incoming.bytes_2c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_1c12_scalling_instance:
+ feature_2c2_catalog_instance_1c201_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_2c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_1c12_scalling_instance:
+ disk.device.iops_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_1c12_scalling_instance_1c1_t1_port:
+ attachment_2c2_catalog_instance_1c201_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_2c2_catalog_instance_1c201_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.ephemeral.size_1c12_scalling_instance:
+ disk.device.latency_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_1c12_scalling_instance:
+ network.outgoing.packets.rate_2c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_1c12_scalling_instance:
+ disk.read.bytes.rate_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_1c12_scalling_instance:
+ memory.usage_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_1c12_scalling_instance:
+ disk.write.bytes.rate_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_1c12_scalling_instance:
+ disk.device.capacity_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_1c12_scalling_instance:
- type: tosca.capabilities.Node
+ disk.read.requests_2c2_catalog_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_1c12_scalling_instance:
+ network.outgoing.bytes_2c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_1c12_scalling_instance:
+ cpu_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_1c12_scalling_instance:
+ disk.ephemeral.size_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- vcpus_1c12_scalling_instance:
+ disk.device.write.bytes_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c12_scalling_instance_1c1_t1_port:
+ memory.resident_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_1c12_scalling_instance:
+ disk.device.usage_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_1c12_scalling_instance_1c1_t1_port:
+ network.outgoing.bytes.rate_2c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_1c12_scalling_instance:
+ network.outpoing.packets_2c2_catalog_instance_1c201_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c12_scalling_instance_1c1_t1_port:
+ cpu_util_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_1c12_scalling_instance:
+ network.incoming.bytes.rate_2c2_catalog_instance_1c201_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.root.size_1c12_scalling_instance:
+ disk.usage_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_1c12_scalling_instance:
+ binding_2c2_catalog_instance_2c202_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ feature_2c2_catalog_instance:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_1c12_scalling_instance:
+ cpu.delta_2c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_1c12_scalling_instance:
+ network.incoming.packets.rate_2c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.usage_1c12_scalling_instance:
+ binding_2c2_catalog_instance:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_2c2_catalog_instance_2c202_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_2c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
+ feature_2c2_catalog_instance_2c202_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_2c2_catalog_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_2c2_catalog_instance_1c201_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_2c2_catalog_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.1c2_catalog_instance:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_pcm_port_0_network_role:
- type: string
- required: true
- status: SUPPORTED
- port_pcm_port_1_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- availabilityzone_name:
- type: string
- description: availabilityzone name
+ compute_1c2_catalog_instance_availability_zone:
+ type: list
required: true
status: SUPPORTED
- port_pcm_port_0_vlan_requirements:
+ entry_schema:
+ type: string
+ port_1c201_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- pcm_image_name:
+ vm_flavor_name:
type: string
- description: PCRF CM image name
required: true
status: SUPPORTED
- port_pcm_port_0_order:
- type: integer
+ compute_1c2_catalog_instance_personality:
+ type: list
required: true
status: SUPPORTED
- port_pcm_port_0_subnetpoolid:
+ entry_schema:
+ type: json
+ port_2c202_port_subnetpoolid:
type: string
required: true
status: SUPPORTED
- port_pcm_port_1_subnetpoolid:
- type: string
+ port_2c202_port_ip_requirements:
+ type: list
required: true
status: SUPPORTED
- port_pcm_port_0_network_role_tag:
- type: string
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c201_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- pcm_server_name:
+ port_2c202_port_network_role_tag:
type: string
- description: PCRF CM server name
required: true
status: SUPPORTED
- cps_net_mask:
+ port_2c202_port_network_role:
type: string
- description: CPS network mask
- required: true
- status: SUPPORTED
- port_pcm_port_1_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- status: SUPPORTED
- port_pcm_port_0_exCP_naming:
- type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- oam_net_name:
+ vm_image_name:
type: string
- description: OAM network name
required: true
status: SUPPORTED
- port_pcm_port_1_network_role:
- type: string
+ port_2c202_port_order:
+ type: integer
required: true
status: SUPPORTED
- server_group:
+ port_1c201_port_network_role_tag:
type: string
required: true
status: SUPPORTED
- connectivityChk:
- type: json
+ port_1c201_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_pcm_port_0_ip_requirements:
+ port_2c202_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- oam_net_gw:
- type: string
- description: CPS network gateway
- required: true
- status: SUPPORTED
- security_group_name:
- type: string
- description: the name of security group
- required: true
+ type: org.openecomp.datatypes.network.VlanRequirements
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
status: SUPPORTED
- cps_net_ip:
- type: string
- description: CPS network ip
+ constraints:
+ - greater_or_equal: 0
+ compute_1c2_catalog_instance_name:
+ type: list
required: true
status: SUPPORTED
- port_pcm_port_1_mac_requirements:
+ entry_schema:
+ type: string
+ port_2c202_port_mac_requirements:
type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_pcm_port_1_vlan_requirements:
+ port_2c202_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- pcm_flavor_name:
- type: string
- description: flavor name of PCRF CM instance
- required: true
- status: SUPPORTED
- pcm_vol:
- type: string
- description: CPS Cluman Cinder Volume
- required: true
- status: SUPPORTED
- port_pcm_port_1_ip_requirements:
+ type: string
+ port_1c201_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
- port_pcm_port_0_mac_requirements:
+ port_1c201_port_mac_requirements:
type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- cps_net_name:
- type: string
- description: CPS network name
+ port_2c202_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- oam_net_ip:
+ port_1c201_port_subnetpoolid:
type: string
- description: OAM network ip
required: true
status: SUPPORTED
- oam_net_mask:
+ port_1c201_port_network_role:
type: string
- description: CPS network mask
required: true
status: SUPPORTED
- port_pcm_port_1_order:
- type: integer
+ compute_1c2_catalog_instance_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c201_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_1c2_catalog_instance_scheduler_hints:
+ type: list
required: true
status: SUPPORTED
+ entry_schema:
+ type: json
attributes:
- server_pcm_id:
+ 1c2_catalog_instance_instance_name:
+ type: string
+ status: SUPPORTED
+ 1c2_catalog_instance_1c201_port_tenant_id:
type: string
- description: the pcm nova service id
status: SUPPORTED
requirements:
- - dependency_pcm_port_1:
+ - dependency_1c2_catalog_instance:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_pcm_port_1:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ - local_storage_1c2_catalog_instance:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
occurrences:
- - 1
- - 1
- - dependency_server_pcm:
+ - 0
+ - UNBOUNDED
+ - dependency_1c2_catalog_instance_1c201_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_server_pcm:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
+ - link_1c2_catalog_instance_1c201_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_pcm_port_0:
+ - 1
+ - 1
+ - dependency_1c2_catalog_instance_2c202_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_pcm_port_0:
+ - link_1c2_catalog_instance_2c202_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- network.incoming.packets.rate_pcm_port_0:
+ disk.device.capacity_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_server_pcm:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_1c2_catalog_instance_2c202_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_pcm_port_1:
+ network.incoming.bytes.rate_1c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_pcm_port_1:
+ network.incoming.packets_1c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_server_pcm:
+ network.incoming.packets.rate_1c2_catalog_instance_1c201_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_server_pcm:
+ disk.read.bytes.rate_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_pcm_port_0:
+ network.incoming.bytes_1c2_catalog_instance_1c201_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_server_pcm:
+ memory.usage_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_server_pcm:
+ binding_1c2_catalog_instance_1c201_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes.rate_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_server_pcm:
+ cpu_util_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_server_pcm:
+ cpu_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_server_pcm:
+ disk.read.requests_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_server_pcm:
+ network.outpoing.packets_1c2_catalog_instance_1c201_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_server_pcm:
+ disk.ephemeral.size_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.root.size_server_pcm:
+ disk.device.write.bytes_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.ephemeral.size_server_pcm:
+ memory.resident_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_server_pcm:
+ disk.device.write.requests.rate_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_pcm_port_0:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ os_1c2_catalog_instance:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_pcm_port_1:
+ disk.device.iops_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_pcm_port_0:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- binding_pcm_port_1:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ feature_1c2_catalog_instance_2c202_port:
+ type: tosca.capabilities.Node
occurrences:
- - 0
+ - 1
- UNBOUNDED
- memory.usage_server_pcm:
+ network.outgoing.packets.rate_1c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_server_pcm:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ endpoint_1c2_catalog_instance:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- disk.capacity_server_pcm:
+ disk.allocation_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_server_pcm:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.bytes_server_pcm:
+ disk.latency_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcm_port_0:
+ network.outgoing.bytes.rate_1c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcm_port_1:
+ disk.iops_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_pcm_port_1:
- type: tosca.capabilities.Node
+ binding_1c2_catalog_instance_2c202_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- network.outgoing.bytes_pcm_port_0:
+ vcpus_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_server_pcm:
+ disk.device.latency_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_pcm_port_0:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- network.outgoing.bytes_pcm_port_1:
+ network.outgoing.bytes_1c2_catalog_instance_1c201_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_pcm_port_0:
+ attachment_1c2_catalog_instance_1c201_port:
type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- attachment_pcm_port_1:
- type: tosca.capabilities.Attachment
+ network.incoming.bytes.rate_1c2_catalog_instance_1c201_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- endpoint_server_pcm:
- type: tosca.capabilities.Endpoint.Admin
+ network.incoming.packets_1c2_catalog_instance_1c201_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_server_pcm:
+ disk.read.bytes_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- vcpus_server_pcm:
+ instance_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_server_pcm:
+ disk.capacity_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_server_pcm:
+ disk.write.bytes_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_server_pcm:
+ disk.device.read.bytes.rate_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_server_pcm:
+ network.incoming.bytes_1c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_server_pcm:
- type: tosca.capabilities.Scalable
+ disk.device.allocation_1c2_catalog_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_server_pcm:
+ disk.device.read.bytes_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_server_pcm:
+ disk.device.read.requests_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_server_pcm:
+ disk.device.write.bytes.rate_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_server_pcm:
+ scalable_1c2_catalog_instance:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_server_pcm:
+ host_1c2_catalog_instance:
type: tosca.capabilities.Container
valid_source_types:
- tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- cpu.delta_server_pcm:
+ disk.root.size_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_pcm_port_1:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_1c2_catalog_instance_1c201_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_pcm_port_0:
+ network.outpoing.packets_1c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_server_pcm:
- type: tosca.capabilities.network.Bindable
+ network.incoming.packets.rate_1c2_catalog_instance_2c202_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_pcm_port_0:
+ disk.device.usage_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_server_pcm:
+ network.outgoing.packets.rate_1c2_catalog_instance_1c201_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_pcm_port_1:
+ disk.usage_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_server_pcm:
+ feature_1c2_catalog_instance:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_server_pcm:
+ network.outgoing.bytes.rate_1c2_catalog_instance_1c201_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.latency_server_pcm:
+ disk.write.requests.rate_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_server_pcm:
+ disk.write.requests_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_server_pcm:
- type: tosca.capabilities.Node
+ binding_1c2_catalog_instance:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_pcm_port_0:
+ cpu.delta_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_server_pcm:
+ network.outgoing.bytes_1c2_catalog_instance_2c202_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_pcm_port_1:
+ disk.device.read.requests.rate_1c2_catalog_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c11_scalling_instance:
+ org.openecomp.resource.abstract.nodes.pcma_server_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c1_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_pcm_port_0_network_role:
+ type: string
required: true
status: SUPPORTED
- port_1c1_t1_port_fixed_ips:
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_1c1_t1_port_vlan_requirements:
+ port_pcm_port_0_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- port_1c1_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- status: SUPPORTED
- constraints:
- - greater_or_equal: 0
vm_flavor_name:
type: string
required: true
status: SUPPORTED
- compute_1c11_scalling_instance_name:
+ port_pcm_port_0_security_groups:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- compute_1c11_scalling_instance_availability_zone:
+ type: json
+ compute_pcma_server_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- compute_1c11_scalling_instance_user_data_format:
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c1_t1_port_ip_requirements:
+ port_pcm_port_0_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
- vm_image_name:
- type: string
+ port_pcm_port_1_security_groups:
+ type: list
required: true
status: SUPPORTED
- port_1c1_t1_port_name:
+ entry_schema:
+ type: json
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- compute_1c11_scalling_instance_scheduler_hints:
+ port_pcm_port_0_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_1c1_t1_port_subnetpoolid:
- type: string
+ type: string
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c1_t1_port_network_role_tag:
- type: string
+ port_pcm_port_1_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c1_t1_port_network_role:
- type: string
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_1_fixed_ips:
+ type: list
required: true
status: SUPPORTED
- port_1c1_t1_port_network:
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c1_t1_port_order:
- type: integer
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- attributes:
- 1c11_scalling_instance_instance_name:
- type: string
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
status: SUPPORTED
- 1c11_scalling_instance_1c1_t1_port_tenant_id:
- type: string
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
status: SUPPORTED
requirements:
- - dependency_1c11_scalling_instance:
+ - dependency_pcma_server:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_1c11_scalling_instance:
+ - local_storage_pcma_server:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_1c11_scalling_instance_1c1_t1_port:
+ - dependency_pcma_server_pcm_port_0:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c11_scalling_instance_1c1_t1_port:
+ - link_pcma_server_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pcma_server_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcma_server_pcm_port_1:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.usage_1c11_scalling_instance:
+ cpu.delta_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_1c11_scalling_instance_1c1_t1_port:
+ scalable_pcma_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c11_scalling_instance_1c1_t1_port:
+ host_pcma_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_1c11_scalling_instance:
+ disk.usage_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_1c11_scalling_instance:
+ attachment_pcma_server_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_1c11_scalling_instance:
+ disk.iops_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_1c11_scalling_instance:
+ network.outgoing.bytes.rate_pcma_server_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_1c11_scalling_instance:
- type: tosca.capabilities.network.Bindable
+ network.outgoing.bytes.rate_pcma_server_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_1c11_scalling_instance:
+ attachment_pcma_server_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_pcma_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcma_server:
type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- memory.usage_1c11_scalling_instance:
+ memory.usage_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_1c11_scalling_instance:
+ network.incoming.packets_pcma_server_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.latency_1c11_scalling_instance:
+ network.incoming.bytes.rate_pcma_server_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_1c11_scalling_instance_1c1_t1_port:
+ network.outgoing.bytes_pcma_server_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- vcpus_1c11_scalling_instance:
+ memory_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_1c11_scalling_instance:
+ network.outgoing.bytes_pcma_server_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_1c11_scalling_instance:
+ cpu_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- endpoint_1c11_scalling_instance:
- type: tosca.capabilities.Endpoint.Admin
+ disk.device.write.bytes.rate_pcma_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_1c11_scalling_instance_1c1_t1_port:
- type: tosca.capabilities.Node
+ disk.read.bytes.rate_pcma_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_1c11_scalling_instance:
- type: tosca.capabilities.Scalable
+ network.incoming.packets.rate_pcma_server_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_1c11_scalling_instance:
+ binding_pcma_server_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets_pcma_server_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_pcma_server:
type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c11_scalling_instance_1c1_t1_port:
+ binding_pcma_server_pcm_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets.rate_pcma_server_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.ephemeral.size_1c11_scalling_instance:
+ disk.device.read.requests_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_1c11_scalling_instance:
+ disk.write.bytes.rate_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_1c11_scalling_instance:
+ network.outgoing.packets.rate_pcma_server_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_1c11_scalling_instance:
+ disk.device.write.requests.rate_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_1c11_scalling_instance:
+ network.incoming.bytes.rate_pcma_server_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_1c11_scalling_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ network.outgoing.packets.rate_pcma_server_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_1c11_scalling_instance:
+ cpu_util_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu.delta_1c11_scalling_instance:
+ disk.device.write.bytes_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_1c11_scalling_instance_1c1_t1_port:
+ disk.device.read.bytes.rate_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_1c11_scalling_instance:
+ disk.device.usage_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_1c11_scalling_instance_1c1_t1_port:
+ disk.read.requests_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_1c11_scalling_instance:
+ disk.allocation_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_1c11_scalling_instance_1c1_t1_port:
+ feature_pcma_server_pcm_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcma_server_pcm_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_pcma_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pcma_server:
type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 0
+ - 1
- UNBOUNDED
- disk.write.bytes_1c11_scalling_instance:
+ disk.latency_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_1c11_scalling_instance:
+ disk.device.write.requests_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_1c11_scalling_instance_1c1_t1_port:
+ disk.device.read.bytes_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_1c11_scalling_instance_1c1_t1_port:
+ disk.device.allocation_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_1c11_scalling_instance:
+ memory.resident_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_1c11_scalling_instance:
+ disk.root.size_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_1c11_scalling_instance:
+ disk.write.bytes_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.root.size_1c11_scalling_instance:
+ network.incoming.bytes_pcma_server_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_1c11_scalling_instance:
+ disk.write.requests_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_1c11_scalling_instance:
+ network.incoming.bytes_pcma_server_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_1c11_scalling_instance:
+ disk.write.requests.rate_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_1c11_scalling_instance:
+ disk.device.iops_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_1c11_scalling_instance_1c1_t1_port:
- type: tosca.capabilities.Attachment
+ instance_pcma_server:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_1c11_scalling_instance:
+ disk.device.latency_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_1c11_scalling_instance:
+ disk.capacity_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_1c11_scalling_instance:
+ disk.device.capacity_pcma_server:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_1c11_scalling_instance:
+ network.outpoing.packets_pcma_server_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_1c11_scalling_instance:
+ network.outpoing.packets_pcma_server_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.pcma_server:
+ org.openecomp.resource.abstract.nodes.a_single_1a:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_pcm_port_3_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_pcm_port_2_network_role:
- type: string
+ compute_a_single_1a_metadata:
+ type: list
required: true
status: SUPPORTED
- port_pcm_port_2_fixed_ips:
+ entry_schema:
+ type: json
+ port_1a_t1_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_pcm_port_3_network_role:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t2_port_network_role_tag:
type: string
required: true
status: SUPPORTED
- port_pcm_port_3_vlan_requirements:
- type: list
+ vm_flavor_name:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_flavor_name:
+ port_1a_t2_port_network_role:
type: string
required: true
status: SUPPORTED
- port_pcm_port_3_security_groups:
+ port_1a_t2_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_pcm_port_3_order:
- type: integer
+ type: string
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- compute_pcma_server_availability_zone:
+ port_1a_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- vm_image_name:
+ port_1a_t1_port_subnetpoolid:
type: string
required: true
status: SUPPORTED
- port_pcm_port_2_security_groups:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_pcm_port_2_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ vm_image_name:
+ type: string
required: true
status: SUPPORTED
- port_pcm_port_3_ip_requirements:
+ port_1a_t2_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
- port_pcm_port_2_subnetpoolid:
- type: string
- required: true
- status: SUPPORTED
- port_pcm_port_2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_pcm_port_2_vlan_requirements:
+ port_1a_t1_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- port_pcm_port_3_subnetpoolid:
- type: string
- required: true
- status: SUPPORTED
- port_pcm_port_3_network_role_tag:
- type: string
+ port_1a_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_pcma_server_config_drive:
+ compute_a_single_1a_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: boolean
- port_pcm_port_3_fixed_ips:
+ type: string
+ compute_a_single_1a_scheduler_hints:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ type: json
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -2479,1110 +3197,1220 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_pcma_server_user_data_format:
- type: list
+ port_1a_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_pcm_port_2_order:
+ port_1a_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_order:
type: integer
required: true
status: SUPPORTED
- port_pcm_port_3_exCP_naming:
+ port_1a_t2_port_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_pcm_port_2_network:
+ port_1a_t2_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_pcm_port_2_ip_requirements:
- type: list
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_pcm_port_2_network_role_tag:
- type: string
+ port_1a_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_pcm_port_3_network:
+ compute_a_single_1a_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- compute_pcma_server_scheduler_hints:
+ compute_a_single_1a_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- compute_pcma_server_name:
- type: list
+ type: string
+ port_1a_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- entry_schema:
- type: string
+ attributes:
+ a_single_1a_instance_name:
+ type: string
+ status: SUPPORTED
+ a_single_1a_1a_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
requirements:
- - dependency_pcma_server:
+ - dependency_a_single_1a_1a_t1_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_pcma_server:
+ - link_a_single_1a_1a_t1_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_a_single_1a:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_a_single_1a:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_pcma_server_pcm_port_3:
+ - dependency_a_single_1a_1a_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_pcma_server_pcm_port_3:
+ - link_a_single_1a_1a_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- - dependency_pcma_server_pcm_port_2:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
+ capabilities:
+ disk.read.bytes_a_single_1a:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- - 0
+ - 1
- UNBOUNDED
- - link_pcma_server_pcm_port_2:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ network.incoming.bytes.rate_a_single_1a_1a_t2_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - 1
- capabilities:
- cpu.delta_pcma_server:
+ - UNBOUNDED
+ disk.usage_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_pcma_server:
+ attachment_a_single_1a_1a_t2_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_a_single_1a:
type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- vcpus_pcma_server:
+ network.outgoing.bytes.rate_a_single_1a_1a_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_pcma_server:
+ host_a_single_1a:
type: tosca.capabilities.Container
valid_source_types:
- tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_pcma_server:
+ endpoint_a_single_1a:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_pcma_server:
+ memory.resident_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_pcma_server_pcm_port_3:
+ network.incoming.packets.rate_a_single_1a_1a_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_pcma_server:
+ cpu.delta_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_pcma_server:
+ disk.device.write.requests_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_pcma_server_pcm_port_2:
+ network.incoming.bytes.rate_a_single_1a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_pcma_server_pcm_port_2:
- type: tosca.capabilities.Attachment
+ disk.iops_a_single_1a:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- endpoint_pcma_server:
- type: tosca.capabilities.Endpoint.Admin
+ network.incoming.bytes_a_single_1a_1a_t1_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_pcma_server:
- type: tosca.capabilities.Node
+ cpu_util_a_single_1a:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_pcma_server_pcm_port_3:
- type: tosca.capabilities.Attachment
+ os_a_single_1a:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_pcma_server_pcm_port_2:
+ disk.device.usage_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.usage_pcma_server:
+ network.incoming.packets.rate_a_single_1a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_pcma_server_pcm_port_3:
+ network.outgoing.packets.rate_a_single_1a_1a_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_pcma_server_pcm_port_3:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_pcma_server_pcm_port_3:
+ disk.read.requests_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_pcma_server:
+ disk.read.bytes.rate_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_pcma_server_pcm_port_2:
+ disk.write.bytes.rate_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_pcma_server:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_a_single_1a_1a_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_pcma_server:
+ cpu_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_pcma_server:
+ memory.usage_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_pcma_server_pcm_port_3:
+ disk.device.write.requests.rate_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_pcma_server_pcm_port_2:
+ binding_a_single_1a_1a_t2_port:
type: tosca.capabilities.network.Bindable
valid_source_types:
- org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- 0
- UNBOUNDED
- os_pcma_server:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- network.incoming.packets_pcma_server_pcm_port_2:
+ network.incoming.packets_a_single_1a_1a_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_pcma_server_pcm_port_3:
+ disk.device.read.requests_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcma_server_pcm_port_3:
+ disk.device.latency_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_pcma_server_pcm_port_2:
+ instance_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_pcma_server:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ binding_a_single_1a:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_pcma_server:
+ disk.latency_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcma_server_pcm_port_2:
+ network.outgoing.bytes_a_single_1a_1a_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_pcma_server:
+ disk.device.allocation_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_pcma_server:
+ disk.write.bytes_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_pcma_server:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_a_single_1a_1a_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_pcma_server:
+ network.outpoing.packets_a_single_1a_1a_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_pcma_server:
+ network.outpoing.packets_a_single_1a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_pcma_server:
+ disk.device.read.bytes.rate_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_pcma_server:
+ disk.device.write.bytes_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_pcma_server_pcm_port_2:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- feature_pcma_server_pcm_port_3:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.ephemeral.size_pcma_server:
+ disk.device.write.bytes.rate_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_pcma_server:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- disk.latency_pcma_server:
+ memory_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_pcma_server:
+ disk.allocation_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_pcma_server:
+ network.outgoing.packets.rate_a_single_1a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_pcma_server:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_a_single_1a_1a_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- memory.resident_pcma_server:
+ disk.capacity_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.root.size_pcma_server:
+ disk.device.read.bytes_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_pcma_server:
+ network.incoming.packets_a_single_1a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_pcma_server:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_a_single_1a:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_pcma_server_pcm_port_2:
+ network.outgoing.bytes_a_single_1a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_pcma_server_pcm_port_3:
+ disk.ephemeral.size_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_pcma_server:
+ vcpus_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_pcma_server:
+ binding_a_single_1a_1a_t1_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.iops_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_pcma_server:
+ disk.write.requests_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_pcma_server_pcm_port_3:
+ disk.device.read.requests.rate_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_pcma_server:
+ disk.device.capacity_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_pcma_server_pcm_port_2:
+ disk.write.requests.rate_a_single_1a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_pcma_server:
+ network.incoming.bytes_a_single_1a_1a_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_pcma_server:
+ network.outgoing.bytes.rate_a_single_1a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.heat.pcm_server:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
+ org.openecomp.resource.vfc.nodes.heat.b_single_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
properties:
- port_pcm_port_0_network_role:
- type: string
+ port_1b_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_pcm_port_1_network_role_tag:
+ port_1b_t1_port_network_role:
type: string
required: true
status: SUPPORTED
- availabilityzone_name:
+ port_1b_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
type: string
- description: availabilityzone name
required: true
status: SUPPORTED
- port_pcm_port_0_vlan_requirements:
+ port_1b_t1_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- pcm_image_name:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
type: string
- description: PCRF CM image name
required: true
status: SUPPORTED
- port_pcm_port_0_order:
+ port_1b_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_order:
type: integer
required: true
status: SUPPORTED
- port_pcm_port_0_subnetpoolid:
+ compute_b_single_1b_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network_role_tag:
type: string
required: true
status: SUPPORTED
- port_pcm_port_1_subnetpoolid:
+ port_1b_t2_port_subnetpoolid:
type: string
required: true
status: SUPPORTED
- port_pcm_port_0_network_role_tag:
+ port_1b_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_b_single_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_b_single_1b_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1b_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1b_t1_port_network_role_tag:
type: string
required: true
status: SUPPORTED
- pcm_server_name:
+ compute_b_single_1b_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1b_t1_port_subnetpoolid:
type: string
- description: PCRF CM server name
required: true
status: SUPPORTED
- cps_net_mask:
+ port_1b_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_b_single_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ b_single_1b_instance_name:
type: string
- description: CPS network mask
+ status: SUPPORTED
+ b_single_1b_1b_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
+ org.openecomp.resource.abstract.nodes.b_single_1b_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_1b_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_pcm_port_1_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1b_t1_port_network_role:
+ type: string
required: true
status: SUPPORTED
- port_pcm_port_0_exCP_naming:
+ port_1b_t1_port_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- oam_net_name:
+ vm_flavor_name:
type: string
- description: OAM network name
required: true
status: SUPPORTED
- port_pcm_port_1_network_role:
+ port_1b_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- server_group:
+ port_1b_t2_port_network_role:
type: string
required: true
status: SUPPORTED
- connectivityChk:
- type: json
+ port_1b_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_pcm_port_0_ip_requirements:
+ compute_b_single_1b_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- oam_net_gw:
- type: string
- description: CPS network gateway
+ type: string
+ port_1b_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- security_group_name:
+ port_1b_t2_port_network_role_tag:
type: string
- description: the name of security group
required: true
status: SUPPORTED
- cps_net_ip:
+ port_1b_t2_port_subnetpoolid:
type: string
- description: CPS network ip
required: true
status: SUPPORTED
- port_pcm_port_1_mac_requirements:
+ port_1b_t2_port_mac_requirements:
type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_pcm_port_1_vlan_requirements:
+ compute_b_single_1b_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- pcm_flavor_name:
- type: string
- description: flavor name of PCRF CM instance
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_b_single_1b_scheduler_hints:
+ type: list
required: true
status: SUPPORTED
- pcm_vol:
- type: string
- description: CPS Cluman Cinder Volume
+ entry_schema:
+ type: json
+ port_1b_t2_port_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
- port_pcm_port_1_ip_requirements:
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t2_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
- port_pcm_port_0_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_1b_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- cps_net_name:
- type: string
- description: CPS network name
+ compute_b_single_1b_metadata:
+ type: list
required: true
status: SUPPORTED
- oam_net_ip:
+ entry_schema:
+ type: json
+ port_1b_t1_port_subnetpoolid:
type: string
- description: OAM network ip
required: true
status: SUPPORTED
- oam_net_mask:
- type: string
- description: CPS network mask
+ port_1b_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_pcm_port_1_order:
- type: integer
+ port_1b_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_b_single_1b_name:
+ type: list
required: true
status: SUPPORTED
+ entry_schema:
+ type: string
attributes:
- server_pcm_id:
+ b_single_1b_instance_name:
+ type: string
+ status: SUPPORTED
+ b_single_1b_1b_t1_port_tenant_id:
type: string
- description: the pcm nova service id
status: SUPPORTED
requirements:
- - dependency_pcm_port_1:
+ - dependency_b_single_1b:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_pcm_port_1:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ - local_storage_b_single_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
occurrences:
- - 1
- - 1
- - dependency_server_pcm:
+ - 0
+ - UNBOUNDED
+ - dependency_b_single_1b_1b_t1_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_server_pcm:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
+ - link_b_single_1b_1b_t1_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_pcm_port_0:
+ - 1
+ - 1
+ - dependency_b_single_1b_1b_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_pcm_port_0:
+ - link_b_single_1b_1b_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- network.incoming.packets.rate_pcm_port_0:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_b_single_1b_1b_t2_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- cpu_server_pcm:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ endpoint_b_single_1b:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_pcm_port_1:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_b_single_1b:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_pcm_port_1:
+ disk.iops_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_server_pcm:
+ network.incoming.bytes.rate_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_server_pcm:
+ network.outgoing.bytes.rate_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_pcm_port_0:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ scalable_b_single_1b:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_server_pcm:
+ disk.write.bytes_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_server_pcm:
+ os_b_single_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_server_pcm:
+ cpu_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_server_pcm:
+ disk.device.read.requests.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_server_pcm:
+ network.incoming.packets.rate_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_server_pcm:
+ instance_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_server_pcm:
+ network.incoming.bytes.rate_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.root.size_server_pcm:
+ disk.read.bytes_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.ephemeral.size_server_pcm:
+ disk.device.latency_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_server_pcm:
+ disk.usage_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_pcm_port_0:
+ network.incoming.bytes_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_pcm_port_1:
+ disk.device.allocation_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_pcm_port_0:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ network.outgoing.packets.rate_b_single_1b_1b_t2_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- - 0
+ - 1
- UNBOUNDED
- binding_pcm_port_1:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ disk.device.capacity_b_single_1b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- - 0
+ - 1
- UNBOUNDED
- memory.usage_server_pcm:
+ disk.latency_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_server_pcm:
+ network.incoming.packets_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_server_pcm:
+ network.incoming.packets.rate_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_server_pcm:
- type: tosca.capabilities.OperatingSystem
+ attachment_b_single_1b_1b_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_server_pcm:
+ disk.device.write.requests_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcm_port_0:
+ binding_b_single_1b_1b_t2_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.ephemeral.size_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcm_port_1:
+ disk.write.requests.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_pcm_port_1:
- type: tosca.capabilities.Node
+ network.outpoing.packets_b_single_1b_1b_t2_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_pcm_port_0:
+ disk.device.iops_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_server_pcm:
+ disk.read.requests_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_pcm_port_0:
- type: tosca.capabilities.Node
+ memory.resident_b_single_1b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_pcm_port_1:
+ disk.root.size_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_pcm_port_0:
- type: tosca.capabilities.Attachment
+ feature_b_single_1b_1b_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- attachment_pcm_port_1:
- type: tosca.capabilities.Attachment
+ network.outgoing.bytes_b_single_1b_1b_t2_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- endpoint_server_pcm:
- type: tosca.capabilities.Endpoint.Admin
+ disk.capacity_b_single_1b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_server_pcm:
+ disk.device.write.bytes_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- vcpus_server_pcm:
+ disk.device.read.bytes_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_server_pcm:
+ disk.device.read.bytes.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_server_pcm:
+ cpu_util_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_server_pcm:
+ disk.write.requests_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_server_pcm:
+ network.outgoing.packets.rate_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_server_pcm:
- type: tosca.capabilities.Scalable
+ disk.device.usage_b_single_1b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_server_pcm:
+ disk.read.bytes.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_server_pcm:
+ network.outgoing.bytes_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_server_pcm:
+ disk.device.read.requests_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_server_pcm:
+ network.incoming.packets_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_server_pcm:
- type: tosca.capabilities.Container
+ binding_b_single_1b_1b_t1_port:
+ type: tosca.capabilities.network.Bindable
valid_source_types:
- - tosca.nodes.SoftwareComponent
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- cpu.delta_server_pcm:
+ network.outpoing.packets_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_pcm_port_1:
+ disk.device.write.requests.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_pcm_port_0:
+ memory.usage_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_server_pcm:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- network.outgoing.bytes.rate_pcm_port_0:
+ disk.write.bytes.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_server_pcm:
+ network.incoming.bytes_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_pcm_port_1:
+ network.outgoing.bytes.rate_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_server_pcm:
+ cpu.delta_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_server_pcm:
+ disk.allocation_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.latency_server_pcm:
+ disk.device.write.bytes.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_server_pcm:
+ memory_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_server_pcm:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- network.incoming.bytes.rate_pcm_port_0:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ host_b_single_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_server_pcm:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ binding_b_single_1b:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_pcm_port_1:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_b_single_1b_1b_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.2c2_catalog_instance:
+ org.openecomp.resource.abstract.nodes.b_single_2b:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- compute_2c2_catalog_instance_user_data_format:
- type: list
+ port_1b_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c201_port_vlan_requirements:
- type: list
+ port_1b_t1_port_network_role:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_flavor_name:
- type: string
+ port_1b_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_2c202_port_subnetpoolid:
+ vm_flavor_name:
type: string
required: true
status: SUPPORTED
- port_2c202_port_ip_requirements:
+ port_1b_t1_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
- port_1c201_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- status: SUPPORTED
- port_2c202_port_network_role_tag:
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- port_2c202_port_network_role:
- type: string
+ compute_b_single_2b_scheduler_hints:
+ type: list
required: true
status: SUPPORTED
- vm_image_name:
+ entry_schema:
+ type: json
+ port_1b_t2_port_network_role:
type: string
required: true
status: SUPPORTED
- port_2c202_port_order:
+ port_1b_t2_port_order:
type: integer
required: true
status: SUPPORTED
- port_1c201_port_network_role_tag:
+ port_1b_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network_role_tag:
type: string
required: true
status: SUPPORTED
- compute_2c2_catalog_instance_scheduler_hints:
- type: list
+ port_1b_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: json
- compute_2c2_catalog_instance_availability_zone:
+ compute_b_single_2b_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c201_port_order:
- type: integer
- required: true
- status: SUPPORTED
- port_2c202_port_vlan_requirements:
- type: list
+ port_1b_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -3591,470 +4419,617 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_2c2_catalog_instance_name:
+ port_1b_t2_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_2c202_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t2_port_ip_requirements:
+ type: list
required: true
status: SUPPORTED
- port_2c202_port_network:
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_b_single_2b_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c201_port_ip_requirements:
+ port_1b_t1_port_value_specs:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1c201_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ type: json
+ compute_b_single_2b_user_data_format:
+ type: list
required: true
status: SUPPORTED
- port_2c202_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ entry_schema:
+ type: string
+ port_1b_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- port_1c201_port_subnetpoolid:
+ port_1b_t1_port_subnetpoolid:
type: string
required: true
status: SUPPORTED
- port_1c201_port_network_role:
- type: string
+ port_1b_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c201_port_network:
+ port_1b_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
attributes:
- 2c2_catalog_instance_instance_name:
+ b_single_2b_instance_name:
type: string
status: SUPPORTED
requirements:
- - dependency_2c2_catalog_instance:
+ - dependency_b_single_2b:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_2c2_catalog_instance:
+ - local_storage_b_single_2b:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_2c2_catalog_instance_2c202_port:
+ - dependency_b_single_2b_1b_t1_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_2c2_catalog_instance_2c202_port:
+ - link_b_single_2b_1b_t1_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- - dependency_2c2_catalog_instance_1c201_port:
+ - dependency_b_single_2b_1b_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_2c2_catalog_instance_1c201_port:
+ - link_b_single_2b_1b_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- network.outgoing.packets.rate_2c2_catalog_instance_1c201_port:
+ disk.usage_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_2c2_catalog_instance:
+ network.incoming.bytes.rate_b_single_2b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_2c2_catalog_instance:
+ network.outgoing.bytes.rate_b_single_2b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_2c2_catalog_instance:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_b_single_2b_1b_t2_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_2c2_catalog_instance:
+ disk.write.bytes.rate_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_2c2_catalog_instance:
+ disk.device.capacity_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_2c2_catalog_instance:
+ cpu.delta_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_2c2_catalog_instance:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ host_b_single_2b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_2c2_catalog_instance:
+ disk.device.write.requests_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_2c2_catalog_instance:
- type: tosca.capabilities.Scalable
- occurrences:
- - 1
- - UNBOUNDED
- disk.device.read.requests_2c2_catalog_instance:
+ network.incoming.packets.rate_b_single_2b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_2c2_catalog_instance_1c201_port:
+ disk.read.bytes_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.root.size_2c2_catalog_instance:
+ disk.device.iops_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_2c2_catalog_instance:
+ disk.ephemeral.size_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_2c2_catalog_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ network.incoming.bytes.rate_b_single_2b_1b_t1_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_2c2_catalog_instance:
+ network.incoming.bytes_b_single_2b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_2c2_catalog_instance_1c201_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- disk.device.write.requests.rate_2c2_catalog_instance:
+ disk.write.requests.rate_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_2c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ feature_b_single_2b:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_2c2_catalog_instance_2c202_port:
+ memory.resident_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_2c2_catalog_instance:
+ disk.write.requests_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_2c2_catalog_instance_1c201_port:
+ network.outgoing.packets.rate_b_single_2b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_2c2_catalog_instance_1c201_port:
+ disk.capacity_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.latency_2c2_catalog_instance:
+ disk.device.read.bytes_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_2c2_catalog_instance:
+ network.incoming.packets.rate_b_single_2b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- endpoint_2c2_catalog_instance:
- type: tosca.capabilities.Endpoint.Admin
+ attachment_b_single_2b_1b_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- vcpus_2c2_catalog_instance:
+ disk.write.bytes_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_2c2_catalog_instance_2c202_port:
+ network.incoming.packets_b_single_2b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_2c2_catalog_instance_1c201_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- network.incoming.bytes.rate_2c2_catalog_instance_2c202_port:
+ vcpus_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_2c2_catalog_instance:
+ disk.device.read.requests.rate_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_2c2_catalog_instance_1c201_port:
- type: tosca.capabilities.Attachment
+ binding_b_single_2b_1b_t2_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- network.incoming.packets_2c2_catalog_instance_1c201_port:
+ instance_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_2c2_catalog_instance:
+ network.outpoing.packets_b_single_2b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_2c2_catalog_instance_2c202_port:
+ disk.device.read.requests_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_2c2_catalog_instance:
+ disk.device.latency_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.usage_2c2_catalog_instance:
+ network.outgoing.bytes_b_single_2b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_2c2_catalog_instance:
+ disk.device.allocation_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_2c2_catalog_instance:
+ disk.latency_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_2c2_catalog_instance:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_b_single_2b_1b_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_2c2_catalog_instance_2c202_port:
+ disk.device.read.bytes.rate_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_2c2_catalog_instance:
+ network.outpoing.packets_b_single_2b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.ephemeral.size_2c2_catalog_instance:
+ disk.device.write.bytes.rate_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_2c2_catalog_instance:
+ disk.allocation_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_2c2_catalog_instance:
+ memory_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_2c2_catalog_instance:
+ network.outgoing.packets.rate_b_single_2b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_2c2_catalog_instance_2c202_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ binding_b_single_2b:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_2c2_catalog_instance_1c201_port:
+ network.incoming.packets_b_single_2b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_2c2_catalog_instance:
+ network.outgoing.bytes_b_single_2b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_2c2_catalog_instance_1c201_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ binding_b_single_2b_1b_t1_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ feature_b_single_2b_1b_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.usage_2c2_catalog_instance:
+ os_b_single_2b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_2c2_catalog_instance_2c202_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ disk.read.requests_b_single_2b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- - 0
+ - 1
- UNBOUNDED
- feature_2c2_catalog_instance:
- type: tosca.capabilities.Node
+ endpoint_b_single_2b:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_2c2_catalog_instance:
+ disk.iops_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu.delta_2c2_catalog_instance:
+ disk.device.write.bytes_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_2c2_catalog_instance_2c202_port:
+ scalable_b_single_2b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_2c2_catalog_instance:
- type: tosca.capabilities.network.Bindable
+ cpu_util_b_single_2b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_2c2_catalog_instance_2c202_port:
- type: tosca.capabilities.Attachment
+ disk.device.usage_b_single_2b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_2c2_catalog_instance_2c202_port:
+ disk.device.write.requests.rate_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_2c2_catalog_instance_2c202_port:
- type: tosca.capabilities.Node
+ cpu_b_single_2b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_2c2_catalog_instance:
+ disk.read.bytes.rate_b_single_2b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_2c2_catalog_instance_1c201_port:
+ network.incoming.bytes_b_single_2b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_2c2_catalog_instance:
+ network.outgoing.bytes.rate_b_single_2b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c2_catalog_instance:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
+ org.openecomp.resource.vfc.nodes.heat.2c2_catalog_instance:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_2c2_catalog_instance_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c201_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_2c202_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_2c202_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c201_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_2c202_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_2c202_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_2c202_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1c201_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_2c2_catalog_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_2c2_catalog_instance_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c201_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_2c202_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_2c2_catalog_instance_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_2c202_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_2c202_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1c201_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c201_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_2c202_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1c201_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c201_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c201_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ 2c2_catalog_instance_instance_name:
+ type: string
+ status: SUPPORTED
+ org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
properties:
compute_1c2_catalog_instance_availability_zone:
type: list
@@ -4193,431 +5168,957 @@ node_types:
1c2_catalog_instance_1c201_port_tenant_id:
type: string
status: SUPPORTED
+ org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ server_group:
+ type: string
+ required: true
+ status: SUPPORTED
+ connectivityChk:
+ type: json
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: the name of security group
+ required: true
+ status: SUPPORTED
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ required: true
+ status: SUPPORTED
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ pcma_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ pcma_server_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ pcma_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ attributes:
+ portId:
+ type: string
+ status: SUPPORTED
requirements:
- - dependency_1c2_catalog_instance:
+ - dependency_pcm_port_2:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_1c2_catalog_instance:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
+ - link_pcm_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - dependency_1c2_catalog_instance_1c201_port:
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pcm_port_3:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c201_port:
+ - link_pcm_port_3:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- - dependency_1c2_catalog_instance_2c202_port:
+ - dependency_server_pcma2:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_2c202_port:
+ - local_storage_server_pcma2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pcma1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pcma1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.capacity_1c2_catalog_instance:
+ network.incoming.packets.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_1c2_catalog_instance_2c202_port:
- type: tosca.capabilities.Attachment
+ network.incoming.packets.rate_pcm_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_2c202_port:
+ network.incoming.packets.rate_pcm_port_2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_1c2_catalog_instance_2c202_port:
+ network.incoming.packets.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c201_port:
+ network.outpoing.packets_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_1c2_catalog_instance:
+ disk.device.iops_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_1c2_catalog_instance_1c201_port:
+ network.outpoing.packets_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.usage_1c2_catalog_instance:
+ network.outpoing.packets_pcm_port_3:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_1c2_catalog_instance_1c201_port:
+ network.outpoing.packets_pcm_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pcm_port_3:
type: tosca.capabilities.network.Bindable
valid_source_types:
- org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- 0
- UNBOUNDED
- disk.write.bytes.rate_1c2_catalog_instance:
+ disk.device.latency_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_1c2_catalog_instance:
+ disk.device.usage_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_1c2_catalog_instance:
+ network.incoming.bytes_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_1c2_catalog_instance:
+ disk.device.latency_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c2_catalog_instance_1c201_port:
+ network.incoming.bytes_pcm_port_2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.ephemeral.size_1c2_catalog_instance:
+ network.incoming.bytes_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_1c2_catalog_instance:
+ disk.device.usage_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_1c2_catalog_instance:
+ binding_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pcm_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pcm_port_2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_3:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_1c2_catalog_instance:
+ network.outgoing.packets.rate_pcm_port_3:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_1c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ disk.device.read.requests_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_1c2_catalog_instance:
+ disk.device.read.requests_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_1c2_catalog_instance_2c202_port:
- type: tosca.capabilities.Node
+ network.outgoing.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_1c2_catalog_instance_2c202_port:
+ network.outgoing.packets.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- endpoint_1c2_catalog_instance:
- type: tosca.capabilities.Endpoint.Admin
+ disk.write.bytes_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_1c2_catalog_instance:
+ disk.device.read.requests.rate_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.latency_1c2_catalog_instance:
+ network.outgoing.packets.rate_pcm_port_2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_1c2_catalog_instance_2c202_port:
+ disk.device.read.requests.rate_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_1c2_catalog_instance:
+ disk.write.bytes_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_1c2_catalog_instance_2c202_port:
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcma1:
type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 0
+ - 1
- UNBOUNDED
- vcpus_1c2_catalog_instance:
+ network.outgoing.bytes_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_1c2_catalog_instance:
+ binding_server_pcma2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_1c2_catalog_instance_1c201_port:
+ feature_pcm_port_3:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_1c2_catalog_instance_1c201_port:
+ attachment_pcm_port_0:
type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c201_port:
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_1c2_catalog_instance_1c201_port:
+ attachment_pcm_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_1c2_catalog_instance:
+ attachment_pcm_port_3:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_1c2_catalog_instance:
+ disk.root.size_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_1c2_catalog_instance:
+ disk.iops_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_1c2_catalog_instance:
+ disk.iops_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_1c2_catalog_instance:
+ disk.device.write.bytes.rate_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_1c2_catalog_instance_2c202_port:
+ disk.device.write.bytes.rate_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_1c2_catalog_instance:
+ disk.read.bytes_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_1c2_catalog_instance:
+ disk.read.bytes_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_1c2_catalog_instance:
+ cpu_util_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_1c2_catalog_instance:
+ cpu_util_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_1c2_catalog_instance:
- type: tosca.capabilities.Scalable
+ feature_server_pcma2:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_1c2_catalog_instance:
+ memory.usage_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_1c2_catalog_instance:
+ memory.usage_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pcma1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcma2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcma1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcma2:
type: tosca.capabilities.Container
valid_source_types:
- tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- disk.root.size_1c2_catalog_instance:
+ host_server_pcma1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_1c2_catalog_instance_1c201_port:
- type: tosca.capabilities.Node
+ disk.ephemeral.size_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c2_catalog_instance_2c202_port:
+ disk.device.write.requests.rate_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_2c202_port:
+ disk.latency_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_1c2_catalog_instance:
+ disk.latency_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_1c2_catalog_instance_1c201_port:
+ disk.device.write.requests.rate_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_1c2_catalog_instance:
+ scalable_server_pcma2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcma1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_1c2_catalog_instance:
- type: tosca.capabilities.Node
+ disk.device.write.requests_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_1c2_catalog_instance:
+ instance_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_1c2_catalog_instance_1c201_port:
+ disk.device.allocation_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_1c2_catalog_instance:
+ disk.device.allocation_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_1c2_catalog_instance:
+ instance_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_1c2_catalog_instance:
- type: tosca.capabilities.network.Bindable
+ os_server_pcma1:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- cpu.delta_1c2_catalog_instance:
+ os_server_pcma2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_1c2_catalog_instance_2c202_port:
+ disk.capacity_server_pcma2:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_1c2_catalog_instance:
+ disk.write.requests_server_pcma1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.a_single_2a:
+ disk.write.requests_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pcma1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pcma2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.1c12_scalling_instance:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- compute_a_single_2a_user_data_format:
+ port_1c1_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_1c12_scalling_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1c1_t1_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_1c12_scalling_instance_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1a_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1c1_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1c1_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
index_value:
@@ -4628,418 +6129,405 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- port_1a_t1_port_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1a_t1_port_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- port_1a_t1_port_network_role:
+ vm_flavor_name:
type: string
required: true
status: SUPPORTED
- compute_a_single_2a_scheduler_hints:
+ compute_1c12_scalling_instance_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_1a_t1_port_order:
- type: integer
- required: true
- status: SUPPORTED
- compute_a_single_2a_availability_zone:
+ type: string
+ port_1c1_t1_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- vm_flavor_name:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1a_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_1a_t1_port_network:
+ port_1c1_t1_port_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1a_t1_port_subnetpoolid:
+ port_1c1_t1_port_subnetpoolid:
type: string
required: true
status: SUPPORTED
- compute_a_single_2a_name:
- type: list
+ port_1c1_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- vm_image_name:
+ port_1c1_t1_port_network_role:
type: string
required: true
status: SUPPORTED
- port_1a_t1_port_vlan_requirements:
+ compute_1c12_scalling_instance_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_a_single_2a_metadata:
+ type: string
+ port_1c1_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
+ type: string
+ port_1c1_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
attributes:
- a_single_2a_instance_name:
+ 1c12_scalling_instance_1c1_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
+ 1c12_scalling_instance_instance_name:
type: string
status: SUPPORTED
requirements:
- - dependency_a_single_2a:
+ - dependency_1c12_scalling_instance_1c1_t1_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_a_single_2a:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
+ - link_1c12_scalling_instance_1c1_t1_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_a_single_2a_1a_t1_port:
+ - 1
+ - 1
+ - dependency_1c12_scalling_instance:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_a_single_2a_1a_t1_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ - local_storage_1c12_scalling_instance:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
occurrences:
- - 1
- - 1
+ - 0
+ - UNBOUNDED
capabilities:
- disk.capacity_a_single_2a:
+ cpu_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.ephemeral.size_a_single_2a:
+ disk.device.write.bytes_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_a_single_2a:
+ network.incoming.bytes.rate_1c12_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_a_single_2a:
+ disk.usage_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_a_single_2a:
+ disk.device.read.requests_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_a_single_2a:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_1c12_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_a_single_2a:
+ disk.device.latency_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_a_single_2a:
+ network.outgoing.bytes_1c12_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_a_single_2a:
+ cpu_util_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_a_single_2a:
+ disk.read.bytes_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_a_single_2a_1a_t1_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ binding_1c12_scalling_instance:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_a_single_2a:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ endpoint_1c12_scalling_instance:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_a_single_2a:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ scalable_1c12_scalling_instance:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_a_single_2a:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ os_1c12_scalling_instance:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_a_single_2a:
+ disk.device.usage_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_a_single_2a:
+ disk.device.allocation_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.latency_a_single_2a:
+ binding_1c12_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets_1c12_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_a_single_2a_1a_t1_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_1c12_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.usage_a_single_2a:
+ disk.latency_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_a_single_2a_1a_t1_port:
+ network.incoming.bytes_1c12_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_a_single_2a:
- type: tosca.capabilities.Scalable
+ memory_1c12_scalling_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_a_single_2a_1a_t1_port:
- type: tosca.capabilities.Node
+ host_1c12_scalling_instance:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_a_single_2a:
+ cpu.delta_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_a_single_2a:
+ disk.device.capacity_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- endpoint_a_single_2a:
- type: tosca.capabilities.Endpoint.Admin
+ disk.read.requests_1c12_scalling_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.root.size_a_single_2a:
+ disk.write.requests.rate_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_a_single_2a:
+ disk.write.bytes.rate_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_a_single_2a_1a_t1_port:
- type: tosca.capabilities.Attachment
+ disk.write.requests_1c12_scalling_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_a_single_2a:
+ network.outgoing.bytes.rate_1c12_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- vcpus_a_single_2a:
+ disk.ephemeral.size_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_a_single_2a:
- type: tosca.capabilities.OperatingSystem
+ disk.device.read.requests.rate_1c12_scalling_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_a_single_2a:
+ instance_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_a_single_2a:
+ disk.device.read.bytes.rate_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_a_single_2a:
+ disk.iops_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_a_single_2a:
+ disk.device.iops_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.usage_a_single_2a:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_1c12_scalling_instance:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_a_single_2a_1a_t1_port:
+ disk.device.write.bytes.rate_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_a_single_2a_1a_t1_port:
+ disk.write.bytes_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_a_single_2a:
- type: tosca.capabilities.network.Bindable
+ disk.device.read.bytes_1c12_scalling_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_a_single_2a:
+ vcpus_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_a_single_2a_1a_t1_port:
+ network.incoming.packets.rate_1c12_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_a_single_2a:
+ disk.device.write.requests.rate_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_a_single_2a_1a_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.packets_a_single_2a_1a_t1_port:
+ network.outgoing.packets.rate_1c12_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_a_single_2a:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ disk.device.write.requests_1c12_scalling_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_a_single_2a:
+ network.outpoing.packets_1c12_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_a_single_2a:
+ disk.allocation_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_a_single_2a:
+ disk.root.size_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_a_single_2a:
+ disk.capacity_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_a_single_2a_1a_t1_port:
+ memory.resident_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu.delta_a_single_2a:
+ disk.read.bytes.rate_1c12_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_a_single_2a:
- type: tosca.capabilities.Node
+ memory.usage_1c12_scalling_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.pcma_server_1:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
properties:
port_pcm_port_0_network_role:
type: string
@@ -5189,485 +6677,652 @@ node_types:
type: integer
required: true
status: SUPPORTED
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ required: true
+ status: SUPPORTED
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ server_group:
+ type: string
+ required: true
+ status: SUPPORTED
+ connectivityChk:
+ type: json
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: the name of security group
+ required: true
+ status: SUPPORTED
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ required: true
+ status: SUPPORTED
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ status: SUPPORTED
requirements:
- - dependency_pcma_server:
+ - dependency_pcm_port_1:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_pcma_server:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_pcma_server_pcm_port_0:
+ - 1
+ - 1
+ - dependency_server_pcm:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_pcma_server_pcm_port_0:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
occurrences:
- - 1
- - 1
- - dependency_pcma_server_pcm_port_1:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_port_0:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_pcma_server_pcm_port_1:
+ - link_pcm_port_0:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- cpu.delta_pcma_server:
+ network.incoming.packets.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_pcma_server:
- type: tosca.capabilities.Scalable
- occurrences:
- - 1
- - UNBOUNDED
- vcpus_pcma_server:
+ cpu_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_pcma_server:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
- occurrences:
- - 1
- - UNBOUNDED
- disk.device.read.requests.rate_pcma_server:
+ network.incoming.packets.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_pcma_server:
+ network.outpoing.packets_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_pcma_server_pcm_port_0:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.bytes_pcma_server:
+ memory_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_pcma_server:
+ disk.write.requests_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_pcma_server_pcm_port_0:
+ network.outpoing.packets_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_pcma_server_pcm_port_1:
+ disk.device.iops_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_pcma_server_pcm_port_1:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- endpoint_pcma_server:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- feature_pcma_server:
- type: tosca.capabilities.Node
+ memory.resident_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.usage_pcma_server:
+ disk.device.write.requests_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_pcma_server_pcm_port_0:
+ disk.device.usage_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_pcma_server_pcm_port_1:
+ disk.allocation_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_pcma_server_pcm_port_0:
+ disk.usage_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_pcma_server:
+ disk.device.write.bytes_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_pcma_server_pcm_port_1:
+ disk.root.size_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_pcma_server:
+ disk.ephemeral.size_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_pcma_server:
+ disk.device.latency_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_pcma_server:
+ network.incoming.bytes_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_pcma_server_pcm_port_0:
+ network.incoming.bytes_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_pcma_server_pcm_port_0:
+ binding_pcm_port_0:
type: tosca.capabilities.network.Bindable
valid_source_types:
- org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- 0
- UNBOUNDED
- network.incoming.packets_pcma_server_pcm_port_1:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
- occurrences:
- - 1
- - UNBOUNDED
- os_pcma_server:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- binding_pcma_server_pcm_port_1:
+ binding_pcm_port_1:
type: tosca.capabilities.network.Bindable
valid_source_types:
- org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- 0
- UNBOUNDED
- network.incoming.packets.rate_pcma_server_pcm_port_1:
+ memory.usage_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_pcma_server:
+ disk.read.requests_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_pcma_server:
+ disk.capacity_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcma_server_pcm_port_1:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_pcma_server:
+ disk.read.bytes_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_pcma_server_pcm_port_0:
+ network.outgoing.packets.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_pcma_server_pcm_port_0:
+ network.outgoing.packets.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_pcma_server:
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_pcma_server:
+ disk.device.read.bytes_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_pcma_server:
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_pcma_server:
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_pcma_server:
+ vcpus_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_pcma_server:
+ disk.write.bytes_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_pcma_server_pcm_port_0:
- type: tosca.capabilities.Node
+ disk.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_pcma_server_pcm_port_1:
- type: tosca.capabilities.Node
+ disk.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.ephemeral.size_pcma_server:
+ disk.device.allocation_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_pcma_server:
- type: tosca.capabilities.network.Bindable
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.latency_pcma_server:
+ disk.device.read.bytes.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_pcma_server:
+ cpu_util_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_pcma_server:
+ disk.write.requests.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_pcma_server:
+ disk.device.write.bytes.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_pcma_server:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- disk.root.size_pcma_server:
+ cpu.delta_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_pcma_server:
+ network.outgoing.bytes.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_pcma_server_pcm_port_0:
+ network.incoming.packets_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_pcma_server:
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_pcma_server_pcm_port_1:
+ disk.device.capacity_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_pcma_server:
+ network.incoming.packets_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_pcma_server:
+ instance_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_pcma_server:
+ disk.device.write.requests.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_pcma_server:
+ disk.latency_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_pcma_server:
+ disk.device.read.requests_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_pcma_server:
+ feature_server_pcm:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_pcma_server_pcm_port_1:
+ disk.write.bytes.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_pcma_server_pcm_port_0:
+ network.incoming.bytes.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.b_single_1b:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
+ org.openecomp.resource.vfc.nodes.heat.a_single_1a:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
properties:
- port_1b_t1_port_order:
- type: integer
+ compute_a_single_1a_metadata:
+ type: list
required: true
status: SUPPORTED
- port_1b_t1_port_network_role:
- type: string
+ entry_schema:
+ type: json
+ port_1a_t1_port_ip_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1b_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t2_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
vm_flavor_name:
type: string
required: true
status: SUPPORTED
- port_1b_t1_port_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- vm_image_name:
+ port_1a_t2_port_network_role:
type: string
required: true
status: SUPPORTED
- port_1b_t2_port_network_role:
- type: string
+ port_1a_t2_port_network:
+ type: list
required: true
status: SUPPORTED
- port_1b_t2_port_order:
- type: integer
+ entry_schema:
+ type: string
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- compute_b_single_1b_user_data_format:
+ port_1a_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1b_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1a_t1_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- port_1b_t2_port_network_role_tag:
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1b_t2_port_subnetpoolid:
- type: string
+ port_1a_t2_port_ip_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1b_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t1_port_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
- compute_b_single_1b_availability_zone:
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_a_single_1a_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
+ compute_a_single_1a_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -5676,1590 +7331,1498 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_b_single_1b_scheduler_hints:
- type: list
+ port_1a_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: json
- port_1b_t2_port_vlan_requirements:
+ port_1a_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- port_1b_t2_port_ip_requirements:
+ port_1a_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1a_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_a_single_1a_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1b_t1_port_value_specs:
+ type: string
+ compute_a_single_1a_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_1b_t1_port_network_role_tag:
- type: string
+ type: string
+ port_1a_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1b_t1_port_subnetpoolid:
+ attributes:
+ a_single_1a_instance_name:
type: string
+ status: SUPPORTED
+ a_single_1a_1a_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
+ org.openecomp.resource.abstract.nodes.1c11_scalling_instance:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_1c1_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1b_t1_port_mac_requirements:
+ port_1c1_t1_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_1c1_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1c1_t1_port_mac_requirements:
type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1b_t2_port_network:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_1c11_scalling_instance_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1b_t1_port_vlan_requirements:
+ compute_1c11_scalling_instance_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- port_1b_t1_port_network:
+ type: string
+ compute_1c11_scalling_instance_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- compute_b_single_1b_name:
+ port_1c1_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_1c11_scalling_instance_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1c1_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
+ port_1c1_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
attributes:
- b_single_1b_instance_name:
+ 1c11_scalling_instance_instance_name:
type: string
status: SUPPORTED
- b_single_1b_1b_t1_port_tenant_id:
+ 1c11_scalling_instance_1c1_t1_port_tenant_id:
type: string
status: SUPPORTED
requirements:
- - dependency_b_single_1b:
+ - dependency_1c11_scalling_instance:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_b_single_1b:
+ - local_storage_1c11_scalling_instance:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_b_single_1b_1b_t1_port:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_b_single_1b_1b_t1_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- - dependency_b_single_1b_1b_t2_port:
+ - dependency_1c11_scalling_instance_1c1_t1_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_b_single_1b_1b_t2_port:
+ - link_1c11_scalling_instance_1c1_t1_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- attachment_b_single_1b_1b_t2_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- endpoint_b_single_1b:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- feature_b_single_1b:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.iops_b_single_1b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
- occurrences:
- - 1
- - UNBOUNDED
- network.incoming.bytes.rate_b_single_1b_1b_t2_port:
+ disk.device.usage_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_b_single_1b_1b_t2_port:
+ network.incoming.packets_1c11_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_b_single_1b:
- type: tosca.capabilities.Scalable
- occurrences:
- - 1
- - UNBOUNDED
- disk.write.bytes_b_single_1b:
+ network.incoming.packets.rate_1c11_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_b_single_1b:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- vcpus_b_single_1b:
+ disk.allocation_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_b_single_1b:
+ disk.device.read.bytes_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_b_single_1b:
+ disk.device.allocation_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_b_single_1b_1b_t2_port:
+ disk.read.bytes_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_b_single_1b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ binding_1c11_scalling_instance:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_b_single_1b_1b_t1_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_1c11_scalling_instance:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_b_single_1b:
+ memory.usage_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_b_single_1b:
+ disk.usage_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_b_single_1b:
+ disk.latency_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_b_single_1b_1b_t1_port:
+ network.outgoing.packets.rate_1c11_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_b_single_1b:
+ vcpus_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_b_single_1b_1b_t2_port:
+ memory_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_b_single_1b:
+ cpu_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.latency_b_single_1b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ endpoint_1c11_scalling_instance:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_b_single_1b_1b_t2_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_1c11_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_b_single_1b_1b_t1_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ scalable_1c11_scalling_instance:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- attachment_b_single_1b_1b_t1_port:
- type: tosca.capabilities.Attachment
+ os_1c11_scalling_instance:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_b_single_1b:
+ network.outpoing.packets_1c11_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_b_single_1b_1b_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- disk.ephemeral.size_b_single_1b:
+ disk.ephemeral.size_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_b_single_1b:
+ cpu_util_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_b_single_1b_1b_t2_port:
+ disk.write.bytes.rate_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_b_single_1b:
+ disk.read.bytes.rate_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_b_single_1b:
+ disk.capacity_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_b_single_1b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ host_1c11_scalling_instance:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- disk.root.size_b_single_1b:
+ disk.device.write.bytes.rate_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_b_single_1b_1b_t1_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- network.outgoing.bytes_b_single_1b_1b_t2_port:
+ cpu.delta_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_b_single_1b:
+ network.outgoing.bytes_1c11_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_b_single_1b:
+ disk.device.write.requests_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_b_single_1b:
+ network.incoming.bytes.rate_1c11_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_b_single_1b:
+ disk.device.capacity_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_b_single_1b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ binding_1c11_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- disk.write.requests_b_single_1b:
+ disk.write.bytes_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_b_single_1b_1b_t1_port:
+ disk.write.requests_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_b_single_1b:
+ network.incoming.bytes_1c11_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_b_single_1b:
+ network.outgoing.bytes.rate_1c11_scalling_instance_1c1_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_b_single_1b_1b_t1_port:
+ disk.device.read.requests_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_b_single_1b:
+ disk.device.write.bytes_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_b_single_1b_1b_t1_port:
+ disk.device.read.bytes.rate_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_b_single_1b_1b_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.outpoing.packets_b_single_1b_1b_t1_port:
+ disk.root.size_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_b_single_1b:
+ instance_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.usage_b_single_1b:
+ disk.read.requests_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_b_single_1b:
+ disk.device.iops_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_b_single_1b_1b_t2_port:
+ memory.resident_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_b_single_1b_1b_t1_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_1c11_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- cpu.delta_b_single_1b:
+ disk.write.requests.rate_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_b_single_1b:
+ disk.device.read.requests.rate_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_b_single_1b:
+ disk.device.write.requests.rate_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_b_single_1b:
+ disk.device.latency_1c11_scalling_instance:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_b_single_1b:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
- occurrences:
- - 1
- - UNBOUNDED
- binding_b_single_1b:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- feature_b_single_1b_1b_t2_port:
- type: tosca.capabilities.Node
+ disk.iops_1c11_scalling_instance:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.a_single_1a:
+ org.openecomp.resource.abstract.nodes.heat.pcm_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- compute_a_single_1a_metadata:
- type: list
+ port_pcm_port_0_network_role:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: json
- port_1a_t1_port_ip_requirements:
- type: list
+ port_pcm_port_1_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1a_t2_port_network_role_tag:
+ availabilityzone_name:
type: string
+ description: availabilityzone name
required: true
status: SUPPORTED
- vm_flavor_name:
- type: string
+ port_pcm_port_0_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1a_t2_port_network_role:
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_image_name:
type: string
+ description: PCRF CM image name
required: true
status: SUPPORTED
- port_1a_t2_port_network:
- type: list
+ port_pcm_port_0_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1a_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_pcm_port_0_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- port_1a_t1_port_network:
- type: list
+ port_pcm_port_1_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1a_t1_port_subnetpoolid:
+ port_pcm_port_0_network_role_tag:
type: string
required: true
status: SUPPORTED
- vm_image_name:
+ pcm_server_name:
type: string
+ description: PCRF CM server name
required: true
status: SUPPORTED
- port_1a_t2_port_ip_requirements:
- type: list
+ cps_net_mask:
+ type: string
+ description: CPS network mask
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1a_t1_port_vlan_requirements:
- type: list
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- port_1a_t1_port_exCP_naming:
+ port_pcm_port_0_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_a_single_1a_availability_zone:
- type: list
+ oam_net_name:
+ type: string
+ description: OAM network name
required: true
status: SUPPORTED
- entry_schema:
- type: string
- compute_a_single_1a_scheduler_hints:
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ server_group:
+ type: string
+ required: true
+ status: SUPPORTED
+ connectivityChk:
+ type: json
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- status: SUPPORTED
- constraints:
- - greater_or_equal: 0
- port_1a_t1_port_network_role_tag:
+ type: org.openecomp.datatypes.network.IpRequirements
+ oam_net_gw:
type: string
+ description: CPS network gateway
required: true
status: SUPPORTED
- port_1a_t1_port_network_role:
+ security_group_name:
type: string
+ description: the name of security group
required: true
status: SUPPORTED
- port_1a_t1_port_order:
- type: integer
+ cps_net_ip:
+ type: string
+ description: CPS network ip
required: true
status: SUPPORTED
- port_1a_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1a_t2_port_vlan_requirements:
+ port_pcm_port_1_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- port_1a_t2_port_subnetpoolid:
+ pcm_flavor_name:
type: string
+ description: flavor name of PCRF CM instance
required: true
status: SUPPORTED
- port_1a_t2_port_order:
- type: integer
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
required: true
status: SUPPORTED
- compute_a_single_1a_user_data_format:
+ port_pcm_port_1_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- compute_a_single_1a_name:
- type: list
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1a_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ cps_net_name:
+ type: string
+ description: CPS network name
required: true
status: SUPPORTED
- attributes:
- a_single_1a_instance_name:
+ oam_net_ip:
type: string
+ description: OAM network ip
+ required: true
status: SUPPORTED
- a_single_1a_1a_t1_port_tenant_id:
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ server_pcm_id:
type: string
+ description: the pcm nova service id
status: SUPPORTED
requirements:
- - dependency_a_single_1a_1a_t1_port:
+ - dependency_pcm_port_1:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_a_single_1a_1a_t1_port:
+ - link_pcm_port_1:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- - dependency_a_single_1a:
+ - dependency_server_pcm:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_a_single_1a:
+ - local_storage_server_pcm:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_a_single_1a_1a_t2_port:
+ - dependency_pcm_port_0:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_a_single_1a_1a_t2_port:
+ - link_pcm_port_0:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.read.bytes_a_single_1a:
+ network.incoming.packets.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_a_single_1a_1a_t2_port:
+ cpu_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_a_single_1a:
+ network.incoming.packets.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_a_single_1a_1a_t2_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- scalable_a_single_1a:
- type: tosca.capabilities.Scalable
- occurrences:
- - 1
- - UNBOUNDED
- network.outgoing.bytes.rate_a_single_1a_1a_t2_port:
+ network.outpoing.packets_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_a_single_1a:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ memory_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- endpoint_a_single_1a:
- type: tosca.capabilities.Endpoint.Admin
+ disk.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.root.size_a_single_1a:
+ network.outpoing.packets_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_a_single_1a:
+ disk.device.iops_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_a_single_1a_1a_t2_port:
+ memory.resident_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu.delta_a_single_1a:
+ disk.device.write.requests_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_a_single_1a:
+ disk.device.usage_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_a_single_1a_1a_t1_port:
+ disk.allocation_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.iops_a_single_1a:
+ disk.usage_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_a_single_1a_1a_t1_port:
+ disk.device.write.bytes_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_a_single_1a:
+ disk.root.size_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_a_single_1a:
- type: tosca.capabilities.OperatingSystem
+ disk.ephemeral.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_a_single_1a:
+ disk.device.latency_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_a_single_1a_1a_t1_port:
+ network.incoming.bytes_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_a_single_1a_1a_t2_port:
+ network.incoming.bytes_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_a_single_1a:
+ binding_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pcm_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.usage_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_a_single_1a:
+ disk.read.requests_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_a_single_1a:
+ disk.capacity_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_a_single_1a_1a_t1_port:
- type: tosca.capabilities.Attachment
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- cpu_a_single_1a:
+ disk.read.bytes_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.usage_a_single_1a:
+ network.outgoing.packets.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_a_single_1a:
+ network.outgoing.packets.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_a_single_1a_1a_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
occurrences:
- - 0
+ - 1
- UNBOUNDED
- network.incoming.packets_a_single_1a_1a_t2_port:
+ network.outgoing.bytes_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_a_single_1a:
+ disk.device.read.bytes_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_a_single_1a:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- instance_a_single_1a:
+ network.outgoing.bytes_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_a_single_1a:
- type: tosca.capabilities.network.Bindable
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.latency_a_single_1a:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_a_single_1a_1a_t2_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_a_single_1a:
+ disk.device.read.requests.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_a_single_1a:
+ vcpus_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_a_single_1a_1a_t1_port:
- type: tosca.capabilities.Node
+ disk.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_a_single_1a_1a_t2_port:
+ disk.iops_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_a_single_1a_1a_t1_port:
+ disk.read.bytes.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_a_single_1a:
+ disk.device.allocation_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_a_single_1a:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_a_single_1a:
+ disk.device.read.bytes.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_a_single_1a:
+ cpu_util_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_a_single_1a:
+ disk.write.requests.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_a_single_1a_1a_t1_port:
+ disk.device.write.bytes.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_a_single_1a_1a_t2_port:
- type: tosca.capabilities.Node
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- disk.capacity_a_single_1a:
+ cpu.delta_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_a_single_1a:
+ network.outgoing.bytes.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_a_single_1a_1a_t1_port:
+ network.incoming.packets_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_a_single_1a:
- type: tosca.capabilities.Node
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_a_single_1a_1a_t1_port:
+ network.outgoing.bytes.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.ephemeral.size_a_single_1a:
+ disk.device.capacity_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- vcpus_a_single_1a:
+ network.incoming.packets_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_a_single_1a_1a_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- disk.device.iops_a_single_1a:
+ instance_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_a_single_1a:
+ disk.device.write.requests.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_a_single_1a:
+ disk.latency_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_a_single_1a:
+ disk.device.read.requests_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_a_single_1a:
+ feature_server_pcm:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_0:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_a_single_1a_1a_t2_port:
+ disk.write.bytes.rate_server_pcm:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_a_single_1a_1a_t1_port:
+ network.incoming.bytes.rate_pcm_port_1:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.b_single_1b_1:
+ org.openecomp.resource.abstract.nodes.a_single_2a:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1b_t1_port_order:
- type: integer
- required: true
- status: SUPPORTED
- port_1b_t1_port_network_role:
- type: string
+ compute_a_single_2a_user_data_format:
+ type: list
required: true
status: SUPPORTED
- port_1b_t1_port_exCP_naming:
+ entry_schema:
+ type: string
+ port_1a_t1_port_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- vm_flavor_name:
- type: string
- required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
status: SUPPORTED
- port_1b_t1_port_ip_requirements:
+ constraints:
+ - greater_or_equal: 0
+ port_1a_t1_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
- vm_image_name:
+ port_1a_t1_port_network_role_tag:
type: string
required: true
status: SUPPORTED
- port_1b_t2_port_network_role:
+ port_1a_t1_port_network_role:
type: string
required: true
status: SUPPORTED
- port_1b_t2_port_order:
- type: integer
- required: true
- status: SUPPORTED
- compute_b_single_1b_user_data_format:
+ compute_a_single_2a_scheduler_hints:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1b_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- status: SUPPORTED
- port_1b_t2_port_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- port_1b_t2_port_subnetpoolid:
- type: string
- required: true
- status: SUPPORTED
- port_1b_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ type: json
+ port_1a_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- compute_b_single_1b_availability_zone:
+ compute_a_single_2a_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- status: SUPPORTED
- constraints:
- - greater_or_equal: 0
- compute_b_single_1b_scheduler_hints:
- type: list
+ vm_flavor_name:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: json
- port_1b_t2_port_vlan_requirements:
- type: list
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- port_1b_t2_port_ip_requirements:
+ port_1a_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1b_t1_port_network_role_tag:
+ type: string
+ port_1a_t1_port_subnetpoolid:
type: string
required: true
status: SUPPORTED
- compute_b_single_1b_metadata:
+ compute_a_single_2a_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_1b_t1_port_subnetpoolid:
+ type: string
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1b_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_1b_t2_port_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_1b_t1_port_vlan_requirements:
+ port_1a_t1_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- compute_b_single_1b_name:
+ compute_a_single_2a_metadata:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
+ type: json
attributes:
- b_single_1b_instance_name:
- type: string
- status: SUPPORTED
- b_single_1b_1b_t1_port_tenant_id:
+ a_single_2a_instance_name:
type: string
status: SUPPORTED
requirements:
- - dependency_b_single_1b:
+ - dependency_a_single_2a:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_b_single_1b:
+ - local_storage_a_single_2a:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_b_single_1b_1b_t1_port:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_b_single_1b_1b_t1_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- - dependency_b_single_1b_1b_t2_port:
+ - dependency_a_single_2a_1a_t1_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_b_single_1b_1b_t2_port:
+ - link_a_single_2a_1a_t1_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- attachment_b_single_1b_1b_t2_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- endpoint_b_single_1b:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- feature_b_single_1b:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.iops_b_single_1b:
+ disk.capacity_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_b_single_1b_1b_t2_port:
+ disk.ephemeral.size_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_b_single_1b_1b_t2_port:
+ disk.device.read.bytes_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_b_single_1b:
- type: tosca.capabilities.Scalable
- occurrences:
- - 1
- - UNBOUNDED
- disk.write.bytes_b_single_1b:
+ cpu_util_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_b_single_1b:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- vcpus_b_single_1b:
+ disk.write.requests_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_b_single_1b:
+ disk.read.requests_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_b_single_1b:
+ disk.device.iops_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_b_single_1b_1b_t2_port:
+ disk.device.usage_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- instance_b_single_1b:
+ disk.read.bytes.rate_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_b_single_1b_1b_t1_port:
+ disk.device.write.requests.rate_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_b_single_1b:
+ network.incoming.bytes.rate_a_single_2a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_b_single_1b:
+ disk.write.requests.rate_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.usage_b_single_1b:
+ disk.device.latency_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_b_single_1b_1b_t1_port:
+ disk.read.bytes_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_b_single_1b:
+ disk.device.read.requests_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_b_single_1b_1b_t2_port:
+ disk.device.allocation_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_b_single_1b:
+ disk.latency_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.latency_b_single_1b:
+ network.incoming.packets.rate_a_single_2a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_b_single_1b_1b_t2_port:
+ disk.usage_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_b_single_1b_1b_t1_port:
+ network.incoming.bytes_a_single_2a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_b_single_1b_1b_t1_port:
- type: tosca.capabilities.Attachment
+ scalable_a_single_2a:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_b_single_1b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ feature_a_single_2a_1a_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- binding_b_single_1b_1b_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- disk.ephemeral.size_b_single_1b:
+ disk.device.write.bytes_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_b_single_1b:
+ disk.device.read.bytes.rate_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_b_single_1b_1b_t2_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ endpoint_a_single_2a:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_b_single_1b:
+ disk.root.size_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_b_single_1b:
+ disk.device.write.requests_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_b_single_1b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_a_single_2a_1a_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.root.size_b_single_1b:
+ disk.iops_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_b_single_1b_1b_t1_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- network.outgoing.bytes_b_single_1b_1b_t2_port:
+ vcpus_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_b_single_1b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ os_a_single_2a:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_b_single_1b:
+ disk.write.bytes.rate_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_b_single_1b:
+ disk.device.capacity_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_b_single_1b:
+ cpu_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_b_single_1b:
+ disk.device.read.requests.rate_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_b_single_1b:
+ memory.usage_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_b_single_1b_1b_t1_port:
+ network.outgoing.packets.rate_a_single_2a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_b_single_1b:
+ network.outpoing.packets_a_single_2a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_b_single_1b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ binding_a_single_2a:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_b_single_1b_1b_t1_port:
+ instance_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_b_single_1b:
+ network.outgoing.bytes_a_single_2a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_b_single_1b_1b_t1_port:
+ disk.write.bytes_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_b_single_1b_1b_t1_port:
+ binding_a_single_2a_1a_t1_port:
type: tosca.capabilities.network.Bindable
valid_source_types:
- org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- 0
- UNBOUNDED
- network.outpoing.packets_b_single_1b_1b_t1_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
- occurrences:
- - 1
- - UNBOUNDED
- disk.device.write.requests.rate_b_single_1b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
- occurrences:
- - 1
- - UNBOUNDED
- memory.usage_b_single_1b:
+ network.incoming.packets_a_single_2a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_b_single_1b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ host_a_single_2a:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_b_single_1b_1b_t2_port:
+ disk.device.write.bytes.rate_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_b_single_1b_1b_t1_port:
+ memory_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu.delta_b_single_1b:
+ disk.allocation_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_b_single_1b:
+ memory.resident_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_b_single_1b:
+ network.outgoing.bytes.rate_a_single_2a_1a_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_b_single_1b:
+ cpu.delta_a_single_2a:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_b_single_1b:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
- occurrences:
- - 1
- - UNBOUNDED
- binding_b_single_1b:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- feature_b_single_1b_1b_t2_port:
+ feature_a_single_2a:
type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.b_single_2b:
+ org.openecomp.resource.abstract.nodes.b_single_1b:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
port_1b_t1_port_order:
@@ -7288,12 +8851,6 @@ node_types:
type: string
required: true
status: SUPPORTED
- compute_b_single_2b_scheduler_hints:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
port_1b_t2_port_network_role:
type: string
required: true
@@ -7302,6 +8859,12 @@ node_types:
type: integer
required: true
status: SUPPORTED
+ compute_b_single_1b_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
port_1b_t2_port_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
@@ -7314,16 +8877,16 @@ node_types:
type: string
required: true
status: SUPPORTED
- compute_b_single_2b_availability_zone:
+ port_1b_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_b_single_1b_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1b_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -7332,36 +8895,30 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- port_1b_t2_port_vlan_requirements:
+ compute_b_single_1b_scheduler_hints:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- port_1b_t2_port_ip_requirements:
+ type: json
+ port_1b_t2_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_b_single_2b_name:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t2_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
+ type: org.openecomp.datatypes.network.IpRequirements
port_1b_t1_port_value_specs:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
- compute_b_single_2b_user_data_format:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
port_1b_t1_port_network_role_tag:
type: string
required: true
@@ -7392,424 +8949,564 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
+ compute_b_single_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
attributes:
- b_single_2b_instance_name:
+ b_single_1b_instance_name:
+ type: string
+ status: SUPPORTED
+ b_single_1b_1b_t1_port_tenant_id:
type: string
status: SUPPORTED
requirements:
- - dependency_b_single_2b:
+ - dependency_b_single_1b:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_b_single_2b:
+ - local_storage_b_single_1b:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_b_single_2b_1b_t1_port:
+ - dependency_b_single_1b_1b_t1_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_b_single_2b_1b_t1_port:
+ - link_b_single_1b_1b_t1_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- - dependency_b_single_2b_1b_t2_port:
+ - dependency_b_single_1b_1b_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_b_single_2b_1b_t2_port:
+ - link_b_single_1b_1b_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.usage_b_single_2b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
- occurrences:
- - 1
- - UNBOUNDED
- network.incoming.bytes.rate_b_single_2b_1b_t2_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_b_single_1b_1b_t2_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_b_single_2b_1b_t2_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ endpoint_b_single_1b:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- attachment_b_single_2b_1b_t2_port:
- type: tosca.capabilities.Attachment
+ feature_b_single_1b:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_b_single_2b:
+ disk.iops_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.capacity_b_single_2b:
+ network.incoming.bytes.rate_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu.delta_b_single_2b:
+ network.outgoing.bytes.rate_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- host_b_single_2b:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ scalable_b_single_1b:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_b_single_2b:
+ disk.write.bytes_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_b_single_2b_1b_t2_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ os_b_single_1b:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes_b_single_2b:
+ vcpus_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_b_single_2b:
+ cpu_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.ephemeral.size_b_single_2b:
+ disk.device.read.requests.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes.rate_b_single_2b_1b_t1_port:
+ network.incoming.packets.rate_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_b_single_2b_1b_t1_port:
+ instance_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests.rate_b_single_2b:
+ network.incoming.bytes.rate_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_b_single_2b:
- type: tosca.capabilities.Node
+ disk.read.bytes_b_single_1b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.resident_b_single_2b:
+ disk.device.latency_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.requests_b_single_2b:
+ disk.usage_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_b_single_2b_1b_t2_port:
+ network.incoming.bytes_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.capacity_b_single_2b:
+ disk.device.allocation_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_b_single_2b:
+ network.outgoing.packets.rate_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_b_single_2b_1b_t1_port:
+ disk.device.capacity_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- attachment_b_single_2b_1b_t1_port:
- type: tosca.capabilities.Attachment
+ disk.latency_b_single_1b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_b_single_2b:
+ network.incoming.packets_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_b_single_2b_1b_t2_port:
+ network.incoming.packets.rate_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- vcpus_b_single_2b:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ attachment_b_single_1b_1b_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests.rate_b_single_2b:
+ disk.device.write.requests_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_b_single_2b_1b_t2_port:
+ binding_b_single_1b_1b_t2_port:
type: tosca.capabilities.network.Bindable
valid_source_types:
- org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- 0
- UNBOUNDED
- instance_b_single_2b:
+ disk.ephemeral.size_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_b_single_2b_1b_t2_port:
+ disk.write.requests.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_b_single_2b:
+ network.outpoing.packets_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_b_single_2b:
+ disk.device.iops_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_b_single_2b_1b_t2_port:
+ disk.read.requests_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_b_single_2b:
+ memory.resident_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.latency_b_single_2b:
+ disk.root.size_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- feature_b_single_2b_1b_t1_port:
+ feature_b_single_1b_1b_t1_port:
type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_b_single_2b:
+ network.outgoing.bytes_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_b_single_2b_1b_t1_port:
+ disk.capacity_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes.rate_b_single_2b:
+ disk.device.write.bytes_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.allocation_b_single_2b:
+ disk.device.read.bytes_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory_b_single_2b:
+ disk.device.read.bytes.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_b_single_2b_1b_t1_port:
+ cpu_util_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_b_single_2b:
- type: tosca.capabilities.network.Bindable
+ disk.write.requests_b_single_1b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_b_single_2b_1b_t1_port:
+ network.outgoing.packets.rate_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes_b_single_2b_1b_t1_port:
+ disk.device.usage_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- binding_b_single_2b_1b_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- feature_b_single_2b_1b_t2_port:
- type: tosca.capabilities.Node
+ disk.read.bytes.rate_b_single_1b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- os_b_single_2b:
- type: tosca.capabilities.OperatingSystem
+ network.outgoing.bytes_b_single_1b_1b_t1_port:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.root.size_b_single_2b:
+ disk.device.read.requests_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.requests_b_single_2b:
+ network.incoming.packets_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- endpoint_b_single_2b:
- type: tosca.capabilities.Endpoint.Admin
+ binding_b_single_1b_1b_t1_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- disk.iops_b_single_2b:
+ network.outpoing.packets_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_b_single_2b:
+ disk.device.write.requests.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- scalable_b_single_2b:
- type: tosca.capabilities.Scalable
+ memory.usage_b_single_1b:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- memory.usage_b_single_2b:
+ disk.write.bytes.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_util_b_single_2b:
+ network.incoming.bytes_b_single_1b_1b_t2_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_b_single_2b:
+ network.outgoing.bytes.rate_b_single_1b_1b_t1_port:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests.rate_b_single_2b:
+ cpu.delta_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- cpu_b_single_2b:
+ disk.allocation_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_b_single_2b:
+ disk.device.write.bytes.rate_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_b_single_2b_1b_t2_port:
+ memory_b_single_1b:
type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_b_single_2b_1b_t1_port:
- type: org.openecomp.capabilities.metric.Ceilometer
- description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ host_b_single_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_b_single_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_b_single_1b_1b_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.b_single_2b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_1b_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_b_single_2b_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1b_t1_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_b_single_2b_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_1b_t2_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_b_single_2b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_1b_t2_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t2_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_b_single_2b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_b_single_2b_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_1b_t1_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ attributes:
+ b_single_2b_instance_name:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.b_single_2b_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -8354,4 +10051,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/MainServiceTemplate.yaml
index 3dacbb2056..594a544d6b 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/MainServiceTemplate.yaml
@@ -1544,6 +1544,28 @@ topology_template:
capability: tosca.capabilities.network.Linkable
node: nested_network
relationship: tosca.relationships.network.LinksTo
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
1c1_t2_port_12:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
@@ -1677,6 +1699,28 @@ topology_template:
capability: tosca.capabilities.network.Linkable
node: nested_network
relationship: tosca.relationships.network.LinksTo
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
1c1_t2_port_11:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/MainServiceTemplate.yaml
index 0477fc36c5..da6640c27b 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/MainServiceTemplate.yaml
@@ -185,6 +185,10 @@ topology_template:
capability: tosca.capabilities.Node
node: test_nested_no_compute
relationship: tosca.relationships.DependsOn
+ - dependency_server_main_ps_1b_ps_server_main_1b:
+ capability: tosca.capabilities.Node
+ node: test_nested_no_compute
+ relationship: tosca.relationships.DependsOn
test_nested1Level_duplicate_same_file:
type: org.openecomp.resource.abstract.nodes.heat.nested1
directives:
@@ -259,6 +263,14 @@ topology_template:
capability: tosca.capabilities.Node
node: test_nested_no_compute
relationship: tosca.relationships.DependsOn
+ - dependency_server_main_1c1_cmaui_2_cmaui_1c1_main:
+ capability: tosca.capabilities.Node
+ node: test_nested_no_compute
+ relationship: tosca.relationships.DependsOn
+ - dependency_server_main_1c1_cmaui_1_cmaui_1c1_main:
+ capability: tosca.capabilities.Node
+ node: test_nested_no_compute
+ relationship: tosca.relationships.DependsOn
test_nested_pattern_4_main_0:
type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4
directives:
@@ -287,10 +299,28 @@ topology_template:
floating_ip_count_required:
is_required: false
requirements:
- - dependency:
+ - dependency_server_pd_pattern4:
capability: tosca.capabilities.Node
- node: test_nested_no_compute
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pd_pattern4:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
+ - link_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
test_nested1Level:
type: org.openecomp.resource.abstract.nodes.heat.nested1
directives:
@@ -319,4 +349,4 @@ topology_template:
- test_nested_pattern_4_main_0
- abstract_pd_server_main_1b_1
- abstract_ps_server_main_1b_1
- - abstract_cmaui_1c1_main_1
+ - abstract_cmaui_1c1_main_1 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested1ServiceTemplate.yaml
index c411944118..4308e668dc 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested1ServiceTemplate.yaml
@@ -130,6 +130,29 @@ topology_template:
is_required: true
floating_ip_count_required:
is_required: false
+ requirements:
+ - dependency_server_pd_pattern4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pd_pattern4:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
abstract_ps_server_main_1b:
type: org.openecomp.resource.abstract.nodes.ps_server_main_1b
directives:
@@ -2320,4 +2343,4 @@ topology_template:
- dependency_test_nested_pattern_4_nested2
dependency_test_nested3Level_test_nested2Level:
- test_nested2Level
- - dependency_test_nested3Level
+ - dependency_test_nested3Level \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested2ServiceTemplate.yaml
index e7feb50e7b..4a129de7ec 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested2ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested2ServiceTemplate.yaml
@@ -149,6 +149,10 @@ topology_template:
capability: tosca.capabilities.Node
node: test_nested3Level
relationship: tosca.relationships.DependsOn
+ - dependency_server_nested2_pd_1b_pd_server_nested2_1b:
+ capability: tosca.capabilities.Node
+ node: test_nested3Level
+ relationship: tosca.relationships.DependsOn
test_nested_pattern_4_nested2:
type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4
directives:
@@ -177,10 +181,28 @@ topology_template:
floating_ip_count_required:
is_required: false
requirements:
- - dependency:
+ - dependency_server_pd_pattern4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pd_pattern4:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pd_server_pattern4_port_1:
capability: tosca.capabilities.Node
- node: test_resourceGroup
+ node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
+ - link_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
test_nested3Level:
type: org.openecomp.resource.abstract.nodes.heat.nested3
directives:
@@ -226,6 +248,29 @@ topology_template:
is_required: true
floating_ip_count_required:
is_required: false
+ requirements:
+ - dependency_server_pd_pattern4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pd_pattern4:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
abstract_ps_server_nested2_1b:
type: org.openecomp.resource.abstract.nodes.ps_server_nested2_1b
directives:
@@ -334,6 +379,14 @@ topology_template:
capability: tosca.capabilities.Node
node: test_nested3Level
relationship: tosca.relationships.DependsOn
+ - dependency_server_nested2_1c1_cmaui_2_cmaui_1c1_nested2:
+ capability: tosca.capabilities.Node
+ node: test_nested3Level
+ relationship: tosca.relationships.DependsOn
+ - dependency_server_nested2_1c1_cmaui_1_cmaui_1c1_nested2:
+ capability: tosca.capabilities.Node
+ node: test_nested3Level
+ relationship: tosca.relationships.DependsOn
groups:
nested2_group:
type: org.openecomp.groups.heat.HeatStack
@@ -1498,4 +1551,4 @@ topology_template:
- dependency
dependency_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
- test_nested_pattern_4_nested2
- - dependency_pd_server_pattern4_port_1
+ - dependency_pd_server_pattern4_port_1 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/nested2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/nested2ServiceTemplate.yaml
index 7983fe32f4..d06e2b7d58 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/nested2ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/nested2ServiceTemplate.yaml
@@ -122,6 +122,29 @@ topology_template:
is_required: true
floating_ip_count_required:
is_required: false
+ requirements:
+ - dependency_cmaui_port_7:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_cmaui_port_7:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_cmaui_port_8:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_cmaui_port_8:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_cmaui:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
abstract_sm_server:
type: org.openecomp.resource.abstract.nodes.sm_server
directives:
@@ -771,4 +794,4 @@ topology_template:
- dependency_oam_server_oam_server_port
dependency_server_sm:
- abstract_sm_server
- - dependency_sm_server
+ - dependency_sm_server \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/MainServiceTemplate.yaml
index 6d51056e60..04be425c13 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/MainServiceTemplate.yaml
@@ -258,6 +258,29 @@ topology_template:
port_pd_server_port_1_mac_requirements:
mac_count_required:
is_required: false
+ requirements:
+ - dependency_pd_server_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_pd_server_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pd:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pd:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
test_nested_no_compute:
type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
directives:
@@ -305,6 +328,29 @@ topology_template:
port_pd_server_port_1_mac_requirements:
mac_count_required:
is_required: false
+ requirements:
+ - dependency_pd_server_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_pd_server_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pd:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pd:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
packet_external_network:
type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
properties:
@@ -521,4 +567,4 @@ topology_template:
value:
get_attribute:
- abstract_osm_server_1c2_1
- - osm_server_1c2_accessIPv4
+ - osm_server_1c2_accessIPv4 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/nested1ServiceTemplate.yaml
index 6edd5eb6e4..049d11ded3 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/nested1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/nested1ServiceTemplate.yaml
@@ -242,6 +242,29 @@ topology_template:
port_pd_server_port_1_mac_requirements:
mac_count_required:
is_required: false
+ requirements:
+ - dependency_pd_server_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_pd_server_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pd:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pd:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
abstract_pd_server_1b:
type: org.openecomp.resource.abstract.nodes.pd_server_1b
directives:
@@ -1666,4 +1689,4 @@ topology_template:
- dependency
dependency_server_1b_pd_2:
- abstract_pd_server_1b
- - dependency_pd_server_1b
+ - dependency_pd_server_1b \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
index d8db407d94..a9e42b46a8 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,637 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ pd_server_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_2_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_2_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_2_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_2_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_2_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_2_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_image:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ attributes:
+ pattern4_attr_1:
+ type: string
+ description: pattern4_attr_1_value
+ status: SUPPORTED
+ requirements:
+ - dependency_pd_server_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pd:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.iops_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pd_server_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pd_server_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pd:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pd_server_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pd_server_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_port_2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pd_server_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu.delta_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pd:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd_server_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd_server_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pd:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pd:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pd:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd_server_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd_server_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pd:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pd:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.ps_server_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_ps_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_ps_server_b_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_b_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_ps_server_b_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_b_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_ps_server_b_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_b_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_ps_server_b_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_b_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.oam_server_1c2:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -430,6 +1061,95 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.oam_server_1c2:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_oam_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_oam_server_1c2_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_oam_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_oam_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_oam_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_oam_server_1c2_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_oam_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_oam_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ attributes:
+ oam_server_1c2_accessIPv4:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.heat.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1397,6 +2117,176 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.pd_server_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_pd_server_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd_server_b_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd_server_b_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_b_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_b_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_b_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_b_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_b_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_b_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ org.openecomp.resource.vfc.nodes.heat.cmaui_1c1:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_cmaui_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_cmaui_1c1_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_cmaui_1c1_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.heat.nested-no-compute:
derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
properties:
@@ -4671,4 +5561,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/MainServiceTemplate.yaml
index 1602a813ba..4b52dd0087 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/MainServiceTemplate.yaml
@@ -61,6 +61,29 @@ topology_template:
port_pd_server_port_1_mac_requirements:
mac_count_required:
is_required: false
+ requirements:
+ - dependency_pd_server_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_pd_server_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pd_server_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pd:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pd:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
test_nested_no_compute:
type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
directives:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 92ea0fa5e7..ae6167dd3e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -564,6 +564,565 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ required: true
+ status: SUPPORTED
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: the name of security group
+ required: true
+ status: SUPPORTED
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ required: true
+ status: SUPPORTED
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ status: SUPPORTED
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ network.incoming.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pcm_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pcm:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1418,3 +1977,40 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.compute:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_compute_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_compute_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_compute_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml
index f57796a212..ccafac79bd 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml
@@ -91,6 +91,29 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
server_pcm_001:
type: org.openecomp.resource.abstract.nodes.heat.pcm_server_1
directives:
@@ -128,6 +151,29 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
compute_port_0:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml
index 674b1e8d9c..17124e4463 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml
@@ -1058,10 +1058,21 @@ topology_template:
vson_vm_names:
- get_input: vson_clm_name_0
requirements:
- - dependency:
+ - dependency_vson_server:
capability: tosca.capabilities.Node
- node: oam_net_security_group
+ node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
vson_mgt_group:
type: org.openecomp.resource.abstract.nodes.heat.vson_vm_2
directives:
@@ -1126,6 +1137,22 @@ topology_template:
get_input: oam_net_id
vson_vm_names:
- get_input: vson_mgt_name_0
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
vson_dbs_volume_1:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
@@ -1208,6 +1235,22 @@ topology_template:
get_input: oam_net_id
vson_vm_names:
- get_input: vson_dbc_name_0
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
vson_dbs_volume_0:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
@@ -1287,6 +1330,22 @@ topology_template:
get_input: oam_net_id
vson_vm_names:
- get_input: vson_clm_name_0
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
vson_dcl_volume_2:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
@@ -1405,6 +1464,22 @@ topology_template:
get_input: oam_net_id
vson_vm_names:
- get_input: vson_mdr_name_0
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
vson_dbs_group:
type: org.openecomp.resource.abstract.nodes.heat.vson_vm_1
directives:
@@ -1477,6 +1552,22 @@ topology_template:
vson_vm_names:
- get_input: vson_dbs_name_0
- get_input: vson_dbs_name_1
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
vson_app_group:
type: org.openecomp.resource.abstract.nodes.heat.vson_vm
directives:
@@ -1551,6 +1642,22 @@ topology_template:
get_input: oam_net_id
vson_vm_names:
- get_input: vson_app_name_0
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
oam_net_security_group:
type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
properties:
@@ -1777,6 +1884,22 @@ topology_template:
get_input: oam_net_id
vson_vm_names:
- get_input: vson_dbg_name_0
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
vson_cll_group:
type: org.openecomp.resource.abstract.nodes.heat.vson_vm_1
directives:
@@ -1852,6 +1975,22 @@ topology_template:
- get_input: vson_cll_name_0
- get_input: vson_cll_name_1
- get_input: vson_cll_name_2
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
vson_app_volume_0:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
@@ -1930,6 +2069,22 @@ topology_template:
get_input: oam_net_id
vson_vm_names:
- get_input: vson_mon_name_0
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
vson_dcl_group:
type: org.openecomp.resource.abstract.nodes.heat.vson_vm_1
directives:
@@ -2006,6 +2161,22 @@ topology_template:
- get_input: vson_dcl_name_0
- get_input: vson_dcl_name_1
- get_input: vson_dcl_name_2
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
groups:
module_5_vson_dbg_volume_group:
type: org.openecomp.groups.heat.HeatStack
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/MANIFEST.json
new file mode 100644
index 0000000000..cdfb18bf6d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/MANIFEST.json
@@ -0,0 +1,35 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "base_cscf.yaml",
+ "type": "HEAT",
+ "data": [
+ {
+ "file": "base_cscf.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },
+ {
+ "file": "base_cscf_volume.yaml",
+ "type": "HEAT_VOL",
+ "data": [
+ {
+ "file": "base_cscf_volume.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },
+ {
+ "file": "nested_cscf.yaml",
+ "type": "HEAT"
+ },
+ {
+ "file": "nested_tdcore.yaml",
+ "type": "HEAT"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf.env
new file mode 100644
index 0000000000..5439cc54b5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf.env
@@ -0,0 +1,406 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX-5000 IMS17.0
+## Name: "base_cscf.env"
+## History
+## Date: 23 Aug 2017
+## 1. corrected the flavour
+## 2. internal ip range to match the TPD for all VMs
+## 3. number of internal ip assignment in list
+## a) cscf_internal_zone_0_ips
+## b) cscf_internal_zone_1_ips
+## c) cscf_internal_zone_0_v6_ips
+## d) cscf_internal_zone_1_v6_ips
+## e) tdcore_internal_zone_0_ips
+## f) tdcore_internal_zone_1_ips
+## to match the count of cscf and tdcore.
+##
+## Kilo Version
+
+parameters:
+# PSEUDO CONSTANTS
+# -----------------------------------------------------------------------------
+ vcscf_release: "17.0"
+ vcscf_name_delimeter: "_"
+ vcscf_internal_network_mtu: 1500
+
+ oam_image_name: IMS_17_0_OPENSTACK_OAM_1701400.000
+ cif_image_name: IMS_17_0_OPENSTACK_CSCF_1701400.000
+ lbd_image_name: IMS_17_0_OPENSTACK_CSCF_1701400.000
+ cdi_image_name: IMS_17_0_OPENSTACK_CSCF_1701400.000
+ cscf_image_name: IMS_17_0_OPENSTACK_CSCF_1701400.000
+ tdcore_image_name: IMS_17_0_OPENSTACK_CSCF_1701400.000
+
+ oam_flavor_name: ND.c4r32d30
+ cscf_flavor_name: ND.c8r16d38
+ cif_flavor_name: ND.c4r16d38
+ lbd_flavor_name: ND.c4r16d38
+ tdcore_flavor_name: ND.c4r16d38
+ cdi_flavor_name: ND.c4r8d38
+
+
+ # vCSCF VM Counts
+
+ cscf_zone_0_count: 19
+ cscf_zone_1_count: 18
+ tdcore_zone_0_count: 4
+ tdcore_zone_1_count: 4
+
+
+ # vCSCF Internal Network
+
+ vcscf_internal_netmask: 255.255.255.0
+ vcscf_internal_network_cidr: 192.168.210.0/24
+ vcscf_internal_network_v6_cidr: 2a00:9a00:a000:1190:0:1:1:2b00/120
+ vcscf_internal_dpdk_network_cidr: 192.168.211.0/24
+
+ # OAM Internal network
+
+ oam_internal_vip_0: 192.168.210.3
+ oam_internal_ip_0: 192.168.210.136
+ oam_internal_ip_1: 192.168.210.137
+ oam_internal_ip_2: 192.168.210.138
+
+ # CSCF VM Internal Network
+
+ cscf_internal_zone_0_ips:
+ - 192.168.210.16
+ - 192.168.210.18
+ - 192.168.210.20
+ - 192.168.210.22
+ - 192.168.210.24
+ - 192.168.210.26
+ - 192.168.210.28
+ - 192.168.210.30
+ - 192.168.210.32
+ - 192.168.210.34
+ - 192.168.210.36
+ - 192.168.210.38
+ - 192.168.210.40
+ - 192.168.210.42
+ - 192.168.210.44
+ - 192.168.210.46
+ - 192.168.210.48
+ - 192.168.210.50
+ - 192.168.210.52
+
+ cscf_internal_zone_1_ips:
+ - 192.168.210.17
+ - 192.168.210.19
+ - 192.168.210.21
+ - 192.168.210.23
+ - 192.168.210.25
+ - 192.168.210.27
+ - 192.168.210.29
+ - 192.168.210.31
+ - 192.168.210.33
+ - 192.168.210.35
+ - 192.168.210.37
+ - 192.168.210.39
+ - 192.168.210.41
+ - 192.168.210.43
+ - 192.168.210.45
+ - 192.168.210.47
+ - 192.168.210.49
+ - 192.168.210.51
+ cscf_internal_zone_0_v6_ips:
+ - "2a00:9a00:a000:1190:0:1:1:2b10"
+ - "2a00:9a00:a000:1190:0:1:1:2b12"
+ - "2a00:9a00:a000:1190:0:1:1:2b14"
+ - "2a00:9a00:a000:1190:0:1:1:2b16"
+ - "2a00:9a00:a000:1190:0:1:1:2b18"
+ - "2a00:9a00:a000:1190:0:1:1:2b1a"
+ - "2a00:9a00:a000:1190:0:1:1:2b1c"
+ - "2a00:9a00:a000:1190:0:1:1:2b1e"
+ - "2a00:9a00:a000:1190:0:1:1:2b20"
+ - "2a00:9a00:a000:1190:0:1:1:2b22"
+ - "2a00:9a00:a000:1190:0:1:1:2b24"
+ - "2a00:9a00:a000:1190:0:1:1:2b26"
+ - "2a00:9a00:a000:1190:0:1:1:2b28"
+ - "2a00:9a00:a000:1190:0:1:1:2b2a"
+ - "2a00:9a00:a000:1190:0:1:1:2b2c"
+ - "2a00:9a00:a000:1190:0:1:1:2b2e"
+ - "2a00:9a00:a000:1190:0:1:1:2b30"
+ - "2a00:9a00:a000:1190:0:1:1:2b32"
+ - "2a00:9a00:a000:1190:0:1:1:2b34"
+
+ cscf_internal_zone_1_v6_ips:
+ - "2a00:9a00:a000:1190:0:1:1:2b11"
+ - "2a00:9a00:a000:1190:0:1:1:2b13"
+ - "2a00:9a00:a000:1190:0:1:1:2b15"
+ - "2a00:9a00:a000:1190:0:1:1:2b17"
+ - "2a00:9a00:a000:1190:0:1:1:2b19"
+ - "2a00:9a00:a000:1190:0:1:1:2b1b"
+ - "2a00:9a00:a000:1190:0:1:1:2b1d"
+ - "2a00:9a00:a000:1190:0:1:1:2b1f"
+ - "2a00:9a00:a000:1190:0:1:1:2b21"
+ - "2a00:9a00:a000:1190:0:1:1:2b23"
+ - "2a00:9a00:a000:1190:0:1:1:2b25"
+ - "2a00:9a00:a000:1190:0:1:1:2b27"
+ - "2a00:9a00:a000:1190:0:1:1:2b29"
+ - "2a00:9a00:a000:1190:0:1:1:2b2b"
+ - "2a00:9a00:a000:1190:0:1:1:2b2d"
+ - "2a00:9a00:a000:1190:0:1:1:2b2f"
+ - "2a00:9a00:a000:1190:0:1:1:2b31"
+ - "2a00:9a00:a000:1190:0:1:1:2b33"
+
+ # TDCore VM Internal Network
+
+ tdcore_internal_zone_0_ips:
+ - 192.168.210.8
+ - 192.168.210.10
+ - 192.168.210.12
+ - 192.168.210.14
+
+ tdcore_internal_zone_1_ips:
+ - 192.168.210.9
+ - 192.168.210.11
+ - 192.168.210.13
+ - 192.168.210.15
+ # TDCore VM DPDK Internal Network
+
+ tdcore_dpdk_zone_0_ips:
+ - 192.168.211.8
+ - 192.168.211.10
+ - 192.168.211.12
+ - 192.168.211.14
+
+ tdcore_dpdk_zone_1_ips:
+ - 192.168.211.9
+ - 192.168.211.11
+ - 192.168.211.13
+ - 192.168.211.15
+
+ # CIF VM Internal Network
+
+ cif_internal_ip_0: 192.168.210.1
+ cif_internal_ip_1: 192.168.210.2
+ cif_internal_vip_0: 192.168.210.150
+ cif_internal_v6_ip_0: "2a00:9a00:a000:1190:0:1:1:2b04"
+ cif_internal_v6_ip_1: "2a00:9a00:a000:1190:0:1:1:2b05"
+
+ # LBD (l2TD) VM Internal Network
+
+ lbd_internal_ip_0: 192.168.210.4
+ lbd_internal_ip_1: 192.168.210.5
+
+ # LBD (l2TD) VM DPDK Internal Network
+
+ lbd_internal_dpdk_ip_0: 192.168.211.1
+ lbd_internal_dpdk_ip_1: 192.168.211.2
+ lbd_internal_dpdk_vip_0: 192.168.211.181
+
+ # CDI VM Internal Network
+
+ cdi_internal_ip_0: 192.168.210.139
+ cdi_internal_ip_1: 192.168.210.140
+
+
+ cdi_internal_v6_ip_0: "2a00:9a00:a000:1190:0:1:1:2b8b"
+ cdi_internal_v6_ip_1: "2a00:9a00:a000:1190:0:1:1:2b8c"
+ cdi_internal_v6_vip_0: "2a00:9a00:a000:1190:0:1:1:2b8d"
+
+# SITE SPECIFIC
+# -----------------------------------------------------------------------------
+# oam_volume_id_0: f0781f87-671c-40c0-82ce-4d8c0531fbc1
+# oam_volume_id_1: 53a1d529-47a1-4722-bab0-d502603eef14
+# cif_volume_id_0: d2262ef6-7bac-4c4e-abfb-fd78e3f0cc0b
+# cif_volume_id_1: b1f6f2bc-6774-4c66-88ef-cb225d216bf0
+#
+#
+#------------------------------------
+# Preload Sheet
+#------------------------------------
+# # Network IDs
+# oam_net_id: LAN1
+# ims_core_net_id: ipv6_1256
+# ims_li_v6_net_id: ipv6_1255
+#
+# # instance availability zones for 1+1 pairs
+# availability_zone_0: zone1
+# availability_zone_1: zone2
+#
+# cif_oam_ip_0: 192.168.1.26
+# cif_oam_ip_1: 192.168.1.27
+#
+# Tag Value
+# cif_oam_vip_0: 192.168.1.28
+#
+# cif_ims_core_v6_ip_0: "2a00:8a00:a000:4000::308"
+# cif_ims_core_v6_ip_1: "2a00:8a00:a000:4000::309"
+# cif_ims_core_v6_vip_0: "2a00:8a00:a000:4000::310"
+#
+# # Seperated Interface for LI-X1 (eth3)
+# cif_oam_ip_2: 192.168.1.29
+# cif_oam_ip_3: 192.168.1.30
+#
+# Tag Value
+# cif_oam_vip_1: 192.168.1.31
+#
+# # Seperated Interface for LI-X2 (eth4)
+#
+# cif_ims_li_v6_ip_0: "2a00:8a00:a000:4000::284"
+# cif_ims_li_v6_ip_1: "2a00:8a00:a000:4000::285"
+# cif_ims_li_v6_vip_0: "2a00:8a00:a000:4000::286"
+#
+#
+# lbd_ims_core_v6_ip_0: "2a00:8a00:a000:4000::311"
+# lbd_ims_core_v6_ip_1: "2a00:8a00:a000:4000::312"
+# lbd_ims_core_v6_vip_0: "2a00:8a00:a000:4000::313"
+#
+#
+# cdi_ims_core_v6_ip_0: "2a00:8a00:a000:4000::314"
+# cdi_ims_core_v6_ip_1: "2a00:8a00:a000:4000::315"
+# cdi_ims_core_v6_vip_0: "2a00:8a00:a000:4000::316"
+#
+# oam_name_0: cscf0011vm001oam001
+# oam_name_1: cscf0011vm002oam001
+# oam_name_2: cscf0011vm003oam001
+# cif_name_0: cscf0011vm004cif001
+# cif_name_1: cscf0011vm005cif001
+# cdi_name_0: cscf0011vm006cdi001
+# cdi_name_1: cscf0011vm007cdi001
+# lbd_name_0: cscf0011vm008lbd001
+# lbd_name_1: cscf0011vm009lbd001
+#
+#------------------------------------
+# Tag values
+#------------------------------------
+#
+# vcscf_dn: DN1
+# vcscf_du: DU1
+# vcscf_cmrepo_address: 10.111.12.71
+# vcscf_swrepo_address: 10.111.12.71
+# vcscf_dns_address: 10.111.12.67
+#
+# vnf_name: CSCF0001
+# vnf_id: CSCF0001
+# vf_module_name: CSCF0001
+# vf_module_id: CSCF0001
+#
+# vcscf_oam_netmask: 255.255.255.0
+# vcscf_default_gateway: 192.168.1.1
+#
+# oam_oam_vip_0: 192.168.1.21
+# oam_oam_ip_0: 192.168.1.23
+# oam_oam_ip_1: 192.168.1.24
+# oam_oam_ip_2: 192.168.1.25
+#
+# tdcore_zone_0_names:
+# - cscf0011vm101sip001
+# - cscf0011vm103sip001
+# - cscf0011vm105sip001
+# - cscf0011vm107sip001
+#
+# tdcore_zone_1_names:
+# - cscf0011vm102sip001
+# - cscf0011vm104sip001
+# - cscf0011vm106sip001
+# - cscf0011vm108sip001
+#
+# cscf_zone_0_names:
+# - cscf0011vm201scf001
+# - cscf0011vm203scf001
+# - cscf0011vm205scf001
+# - cscf0011vm207scf001
+# - cscf0011vm209scf001
+# - cscf0011vm211scf001
+# - cscf0011vm213scf001
+# - cscf0011vm215scf001
+# - cscf0011vm217scf001
+# - cscf0011vm219scf001
+# - cscf0011vm221scf001
+# - cscf0011vm223scf001
+# - cscf0011vm225scf001
+# - cscf0011vm227scf001
+# - cscf0011vm229scf001
+# - cscf0011vm231scf001
+# - cscf0011vm233scf001
+# - cscf0011vm235scf001
+# - cscf0011vm237scf001
+#
+# cscf_zone_1_names:
+# - cscf0011vm202scf001
+# - cscf0011vm204scf001
+# - cscf0011vm206scf001
+# - cscf0011vm208scf001
+# - cscf0011vm210scf001
+# - cscf0011vm212scf001
+# - cscf0011vm214scf001
+# - cscf0011vm216scf001
+# - cscf0011vm218scf001
+# - cscf0011vm220scf001
+# - cscf0011vm222scf001
+# - cscf0011vm224scf001
+# - cscf0011vm226scf001
+# - cscf0011vm228scf001
+# - cscf0011vm230scf001
+# - cscf0011vm232scf001
+# - cscf0011vm234scf001
+# - cscf0011vm236scf001
+#
+# # Below value should be taken from CMRepo after parsing the TPD or the below names should be used while parsing TPD as input
+#
+# oam_uuid_0: cscf0011vm001oam001
+# oam_uuid_1: cscf0011vm002oam001
+# oam_uuid_2: cscf0011vm003oam001
+# cif_uuid_0: cscf0011vm004cif001
+# cif_uuid_1: cscf0011vm005cif001
+# lbd_uuid_0: cscf0011vm006cdi001
+# lbd_uuid_1: cscf0011vm007cdi001
+# cdi_uuid_0: cscf0011vm008lbd001
+# cdi_uuid_1: cscf0011vm009lbd001
+#
+# tdcore_zone_0_uuids:
+# - cscf0011vm101sip001
+# - cscf0011vm103sip001
+# - cscf0011vm105sip001
+# - cscf0011vm107sip001
+#
+# tdcore_zone_1_uuids:
+# - cscf0011vm102sip001
+# - cscf0011vm104sip001
+# - cscf0011vm106sip001
+# - cscf0011vm108sip001
+#
+# cscf_zone_0_uuids:
+# - cscf0011vm201scf001
+# - cscf0011vm203scf001
+# - cscf0011vm205scf001
+# - cscf0011vm207scf001
+# - cscf0011vm209scf001
+# - cscf0011vm211scf001
+# - cscf0011vm213scf001
+# - cscf0011vm215scf001
+# - cscf0011vm217scf001
+# - cscf0011vm219scf001
+# - cscf0011vm221scf001
+# - cscf0011vm223scf001
+# - cscf0011vm225scf001
+# - cscf0011vm227scf001
+# - cscf0011vm229scf001
+# - cscf0011vm231scf001
+# - cscf0011vm233scf001
+# - cscf0011vm235scf001
+# - cscf0011vm237scf001
+#
+# cscf_zone_1_uuids:
+# - cscf0011vm202scf001
+# - cscf0011vm204scf001
+# - cscf0011vm206scf001
+# - cscf0011vm208scf001
+# - cscf0011vm210scf001
+# - cscf0011vm212scf001
+# - cscf0011vm214scf001
+# - cscf0011vm216scf001
+# - cscf0011vm218scf001
+# - cscf0011vm220scf001
+# - cscf0011vm222scf001
+# - cscf0011vm224scf001
+# - cscf0011vm226scf001
+# - cscf0011vm228scf001
+# - cscf0011vm230scf001
+# - cscf0011vm232scf001
+# - cscf0011vm234scf001
+# - cscf0011vm236scf001
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf.yaml
new file mode 100644
index 0000000000..f907f2849d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf.yaml
@@ -0,0 +1,2045 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX
+## Name: "base_cscf.yaml"
+## Date: 20 Mar 2017
+## Kilo Version
+heat_template_version: 2015-04-30
+
+description: >
+ CFX-5000 N+K VNF HOT template for AT&T.
+
+parameters:
+
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+
+ vf_module_name:
+ type: string
+ description: Unique name for this VF Module instance
+
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+
+ cif_volume_id_0:
+ type: string
+ description: size of the cinder volume used for cif
+ cif_volume_id_1:
+ type: string
+ description: size of the cinder volume used for cif
+
+ oam_volume_id_0:
+ type: string
+ description: size of the cinder volume used for oam
+ oam_volume_id_1:
+ type: string
+ description: size of the cinder volume used for oam
+
+ oam_net_id:
+ type: string
+ description: Name/UUID of OAM network
+
+ ims_core_net_id:
+ type: string
+ description: Name/UUID of Core network
+
+ ims_li_v6_net_id:
+ type: string
+ description: Name/UUID of V6 LI network
+
+ availability_zone_0:
+ type: string
+ description: >
+ Availability zone where the first node of a pair will be deployed.
+ Availability zone 0 and 1 can have same zone name if single zone is used.
+
+ availability_zone_1:
+ type: string
+ description: >
+ Availability zone where the second node of a pair will be deployed.
+ Availability zone 0 and 1 can have same zone name if single zone is used.
+
+ oam_image_name:
+ type: string
+ description: OAM VM image name
+
+ cif_image_name:
+ type: string
+ description: CSCF CIF VM image name
+
+ lbd_image_name:
+ type: string
+ description: CSCF LBD VM image name
+
+ cdi_image_name:
+ type: string
+ description: CDI VM image name
+
+ cscf_image_name:
+ type: string
+ description: CSCF server VM image name
+
+ tdcore_image_name:
+ type: string
+ description: TDCORE VM image name
+
+ oam_flavor_name:
+ type: string
+ description: OAM VM flavor
+
+ cscf_flavor_name:
+ type: string
+ description: CSCF server VM flavor
+
+ cif_flavor_name:
+ type: string
+ description: CSCF CIF VM flavor
+
+ lbd_flavor_name:
+ type: string
+ description: CSCF LBD VM flavor
+
+ tdcore_flavor_name:
+ type: string
+ description: TDCORE VM flavor
+
+ cdi_flavor_name:
+ type: string
+ description: CDI VM flavor
+
+ cscf_zone_0_count:
+ type: number
+ description: >
+ Number of CSCF to be deployed on zone 0.
+ This parameter is used to scale the cscf instances.
+ constraints:
+ - range: { min: 0, max: 120 }
+
+ cscf_zone_1_count:
+ type: number
+ description: >
+ Number of CSCF to be deployed on zone 1.
+ This parameter is used to scale the cscf instances.
+ constraints:
+ - range: { min: 0, max: 120 }
+
+ tdcore_zone_0_count:
+ type: number
+ description: >
+ Number of TD Core VMs to be deployed zone 0.
+ This parameter is used to scale the TD Core instances.
+ constraints:
+ - range: { min: 0, max: 8 }
+
+ tdcore_zone_1_count:
+ type: number
+ description: >
+ Number of TD Core VMs to be deployed zone 1.
+ This parameter is used to scale the TD Core instances.
+ constraints:
+ - range: { min: 0, max: 8 }
+
+ vcscf_internal_netmask:
+ type: string
+ description: Netmask for Internal LAN
+
+ vcscf_internal_network_cidr:
+ type: string
+ description: CIDR for for Internal LAN
+
+ vcscf_internal_network_v6_cidr:
+ type: string
+ description: CIDR for for Internal LAN v6
+
+ vcscf_internal_dpdk_network_cidr:
+ type: string
+ description: CIDR for for Internal LAN DPDK
+
+ vcscf_oam_netmask:
+ type: string
+ description: Netmask for OAM LAN
+
+ vcscf_default_gateway:
+ type: string
+ description: Default gateway for OAM LAN
+
+ oam_oam_vip_0:
+ type: string
+ description: OAM CIPA IP of OAM unit
+
+ oam_oam_ip_0:
+ type: string
+ description: OAM IP of OAM01 instance
+
+ oam_oam_ip_1:
+ type: string
+ description: OAM IP of OAM02 instance
+
+ oam_oam_ip_2:
+ type: string
+ description: OAM IP of OAM03 instance
+
+ oam_internal_vip_0:
+ type: string
+ description: Internal CIPA IP of OAM unit
+
+ oam_internal_ip_0:
+ type: string
+ description: Internal IP of OAM01 instance
+
+ oam_internal_ip_1:
+ type: string
+ description: Internal IP of OAM01 instance
+
+ oam_internal_ip_2:
+ type: string
+ description: Internal IP of OAM01 instance
+
+ cscf_internal_zone_0_ips:
+ type: comma_delimited_list
+ description: "List of Internal Lan IPs for CSCF instances on zone 0"
+
+ cscf_internal_zone_0_v6_ips:
+ type: comma_delimited_list
+ description: "List of Internal Lan v6 IPs for CSCF instances on zone 0"
+
+ cscf_internal_zone_1_ips:
+ type: comma_delimited_list
+ description: "List of Internal Lan IPs for CSCF instances on zone 1"
+
+ cscf_internal_zone_1_v6_ips:
+ type: comma_delimited_list
+ description: "List of Internal Lan v6 IPs for CSCF instances on zone 1"
+
+ tdcore_internal_zone_0_ips:
+ type: comma_delimited_list
+ description: "List of Internal Lan IPs for TDCORE instances on zone 0"
+
+ tdcore_dpdk_zone_0_ips:
+ type: comma_delimited_list
+ description: "List of DPDK Lan IPs for TDCORE instances on zone 0"
+
+ tdcore_internal_zone_1_ips:
+ type: comma_delimited_list
+ description: "List of Internal Lan IPs for TDCORE instances on zone 1"
+
+ tdcore_dpdk_zone_1_ips:
+ type: comma_delimited_list
+ description: "List of DPDK Lan IPs for TDCORE instances on zone 1"
+
+ cif_internal_ip_0:
+ type: string
+ description: Internal IP of CIF01 instance
+
+ cif_internal_ip_1:
+ type: string
+ description: Internal IP of CIF02 instance
+
+ cif_internal_vip_0:
+ type: string
+ description: Internal CIPA IP of CIF
+
+ cif_internal_v6_ip_0:
+ type: string
+ description: Internal IP v6 of CIF01 instance
+
+ cif_internal_v6_ip_1:
+ type: string
+ description: Internal IP v6 of CIF02 instance
+
+ cif_oam_ip_0:
+ type: string
+ description: OAM IP of CIF01 instance
+
+ cif_oam_ip_1:
+ type: string
+ description: OAM IP of CIF02 instance
+
+ cif_oam_vip_0:
+ type: string
+ description: OAM CIPA IP of CIF
+
+ cif_ims_core_v6_ip_0:
+ type: string
+ description: IMS CORE v6 IP of CIF01 instance
+
+ cif_ims_core_v6_ip_1:
+ type: string
+ description: IMS CORE v6 IP of CIF02 instance
+
+ cif_ims_core_v6_vip_0:
+ type: string
+ description: IMS CORE v6 CIPA IP of CIF
+
+ cif_oam_ip_2:
+ type: string
+ description: OAM (LI-X1) v4 IP of CIF01 instance
+
+ cif_oam_ip_3:
+ type: string
+ description: OAM (LI-X1) v4 IP of CIF02 instance
+
+ cif_oam_vip_1:
+ type: string
+ description: OAM (LI-X1) v4 CIPA of CIF
+
+ cif_ims_li_v6_ip_0:
+ type: string
+ description: IMS LI v6 IP of CIF01 instance
+
+ cif_ims_li_v6_ip_1:
+ type: string
+ description: IMS LI v6 IP of CIF02 instance
+
+ cif_ims_li_v6_vip_0:
+ type: string
+ description: IMS LI CIPA v6 IP of CIF
+
+ lbd_internal_ip_0:
+ type: string
+ description: Internal IP of LBD01 instance
+
+ lbd_internal_ip_1:
+ type: string
+ description: Internal IP of LBD02 instance
+
+ lbd_internal_dpdk_ip_0:
+ type: string
+ description: Internal DPDK IP of LBD01 instance
+
+ lbd_internal_dpdk_ip_1:
+ type: string
+ description: Internal DPDK IP of LBD02 instance
+
+ lbd_internal_dpdk_vip_0:
+ type: string
+ description: Internal DPDK CIP IP of LBD
+
+ lbd_ims_core_v6_ip_0:
+ type: string
+ description: IMS CORE v6 IP of LBD01 instance
+
+ lbd_ims_core_v6_ip_1:
+ type: string
+ description: IMS CORE v6 IP of LBD02 instance
+
+ lbd_ims_core_v6_vip_0:
+ type: string
+ description: IMS CORE CIPA v6 IP of LBD
+
+ cdi_internal_ip_0:
+ type: string
+ description: Internal IP of CDI01 instance
+
+ cdi_internal_ip_1:
+ type: string
+ description: Internal IP of CDI02 instance
+
+ cdi_internal_v6_ip_0:
+ type: string
+ description: Internal v6 IP of CDI01 instance
+
+ cdi_internal_v6_ip_1:
+ type: string
+ description: Internal v6 IP of CDI02 instance
+
+ cdi_internal_v6_vip_0:
+ type: string
+ description: Internal v6 CIPA IP of CDI
+
+ cdi_ims_core_v6_ip_0:
+ type: string
+ description: IMS CORE LAN v6 IP of CDI01 instance
+
+ cdi_ims_core_v6_ip_1:
+ type: string
+ description: IMS CORE LAN v6 IP of CDI02 instance
+
+ cdi_ims_core_v6_vip_0:
+ type: string
+ description: IMS CORE LAN CIPA v6 IP of CDI
+
+ vcscf_name_delimeter:
+ type: string
+ description: 'delimeter used in concatenating different words while naming (ex: "-","_",".",...)'
+ constraints:
+ - allowed_values: [ '-', '', '_', '.']
+
+ oam_name_0:
+ type: string
+ description: OAM01 instance name
+
+ oam_name_1:
+ type: string
+ description: OAM02 instance name
+
+ oam_name_2:
+ type: string
+ description: OAM03 instance name
+
+ cif_name_0:
+ type: string
+ description: CIF01 instance name
+
+ cif_name_1:
+ type: string
+ description: CIF02 instance name
+
+ lbd_name_0:
+ type: string
+ description: LBD01 instance name
+
+ lbd_name_1:
+ type: string
+ description: LBD02 instance name
+
+ cdi_name_0:
+ type: string
+ description: CDI01 instance name
+
+ cdi_name_1:
+ type: string
+ description: CDI02 instance name
+
+ cscf_zone_0_names:
+ type: comma_delimited_list
+ description: "List of instance names for CSCF instances on zone 0"
+
+ cscf_zone_1_names:
+ type: comma_delimited_list
+ description: "List of instance names for CSCF instances on zone 1"
+
+ tdcore_zone_0_names:
+ type: comma_delimited_list
+ description: "List of instance names for TDCORE instances on zone 0"
+
+ tdcore_zone_1_names:
+ type: comma_delimited_list
+ description: "List of instance names for TDCORE instances on zone 1"
+
+ vcscf_release:
+ type: string
+ description: "IMS release"
+
+ vcscf_dn:
+ type: string
+ description: "DN name"
+
+ vcscf_du:
+ type: string
+ description: "DU name"
+
+ vcscf_cmrepo_address:
+ type: string
+ description: "CMRepo IP or FQDN"
+
+ vcscf_swrepo_address:
+ type: string
+ description: SWRepo IP or FQDN
+
+ vcscf_dns_address:
+ type: string
+ description: DNS server IP
+
+ vcscf_internal_network_mtu:
+ type: number
+ description: MTU for internal network interface (eth0)
+ constraints:
+ - range: { min: 1000, max: 9100 }
+
+ oam_uuid_0:
+ type: string
+ description: UUID generated by cmrepo for OAM01
+
+ oam_uuid_1:
+ type: string
+ description: UUID generated by cmrepo for OAM02
+
+ oam_uuid_2:
+ type: string
+ description: UUID generated by cmrepo for OAM03
+
+ cif_uuid_0:
+ type: string
+ description: UUID generated by cmrepo for CIF01
+
+ cif_uuid_1:
+ type: string
+ description: UUID generated by cmrepo for CIF02
+
+ lbd_uuid_0:
+ type: string
+ description: UUID generated by cmrepo for LBD01
+
+ lbd_uuid_1:
+ type: string
+ description: UUID generated by cmrepo for LBD02
+
+ cdi_uuid_0:
+ type: string
+ description: UUID generated by cmrepo for CDI01
+
+ cdi_uuid_1:
+ type: string
+ description: UUID generated by cmrepo for CDI02
+
+ cscf_zone_0_uuids:
+ type: comma_delimited_list
+ description: "List of UUIDs generated by cmrepo for CSCF instances on zone 0"
+
+ cscf_zone_1_uuids:
+ type: comma_delimited_list
+ description: "List of UUIDs generated by cmrepo for CSCF instances on zone 1"
+
+ tdcore_zone_0_uuids:
+ type: comma_delimited_list
+ description: "List of UUIDs generated by cmrepo for TDCORE instances on zone 0"
+
+ tdcore_zone_1_uuids:
+ type: comma_delimited_list
+ description: "List of UUIDs generated by cmrepo for TDCORE instances on zone 1"
+
+resources:
+
+ cscf_RSG:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: Allow all
+ name:
+ str_replace:
+ template: "$VNF$DELsecurity$DELgroup"
+ params:
+ $VNF: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ rules:
+ - { direction: ingress, ethertype: IPv4 }
+ - { direction: egress, ethertype: IPv4 }
+ - { direction: ingress, ethertype: IPv6 }
+ - { direction: egress, ethertype: IPv6 }
+
+ cscf_internal_network_0:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELinternal$DELnetwork
+ params:
+ $PREFIX: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ admin_state_up: True
+ shared: False
+
+ cscf_internal_subnet_0:
+ type: OS::Neutron::Subnet
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELinternal$DELsubnet
+ params:
+ $PREFIX: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ ip_version: 4
+ network: { get_resource: cscf_internal_network_0 }
+ cidr: { get_param: vcscf_internal_network_cidr }
+ enable_dhcp: False
+ gateway_ip: null
+
+ cscf_internal_subnet_v6_0:
+ type: OS::Neutron::Subnet
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELinternal$DELsubnetv6
+ params:
+ $PREFIX: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ ip_version: 6
+ network: { get_resource: cscf_internal_network_0 }
+ cidr: { get_param: vcscf_internal_network_v6_cidr }
+ enable_dhcp: False
+ gateway_ip: null
+
+ cscf_internal_dpdk_network_0:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELinternal$DELdpdk$DELnetwork
+ params:
+ $PREFIX: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ admin_state_up: True
+ shared: False
+
+ cscf_internal_dpdk_subnet_0:
+ type: OS::Neutron::Subnet
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELinternal$DELdpdk$DELsubnet
+ params:
+ $PREFIX: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_dpdk_network_0 }
+ cidr: { get_param: vcscf_internal_dpdk_network_cidr }
+ enable_dhcp: False
+ gateway_ip: null
+
+ cif_server_group:
+ type: OS::Nova::ServerGroup
+ properties:
+ name:
+ str_replace:
+ template: "$VNF$DELcif$DELgroup"
+ params:
+ $VNF: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ policies: ["anti-affinity"]
+
+ lbd_server_group:
+ type: OS::Nova::ServerGroup
+ properties:
+ name:
+ str_replace:
+ template: "$VNF$DELlbd$DELgroup"
+ params:
+ $VNF: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ policies: ["anti-affinity"]
+
+ cdi_server_group:
+ type: OS::Nova::ServerGroup
+ properties:
+ name:
+ str_replace:
+ template: "$VNF$DELcdi$DELgroup"
+ params:
+ $VNF: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ policies: ["anti-affinity"]
+
+ oam_server_group:
+ type: OS::Nova::ServerGroup
+ properties:
+ name:
+ str_replace:
+ template: "$VNF$DELoam$DELgroup"
+ params:
+ $VNF: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ policies: ["anti-affinity"]
+
+ tdcore_zone_0_server_group:
+ type: OS::Nova::ServerGroup
+ properties:
+ name:
+ str_replace:
+ template: "$VNF$DELtdcore$DELzone0$DELgroup"
+ params:
+ $VNF: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ policies: ["anti-affinity"]
+
+ tdcore_zone_1_server_group:
+ type: OS::Nova::ServerGroup
+ properties:
+ name:
+ str_replace:
+ template: "$VNF$DELtdcore$DELzone1$DELgroup"
+ params:
+ $VNF: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ policies: ["anti-affinity"]
+
+ cif_internal_vip_0_port:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $NAME$DELcif$DELinternal$DELvip
+ params:
+ $NAME: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_internal_vip_0 }
+
+ cif_oam_vip_1_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $NAME$DELcif$DELoam$DELvip0
+ params:
+ $NAME: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: oam_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_oam_vip_0 }
+
+ cif_ims_core_v6_vip_2_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $NAME$DELcif$DELims$DELcore$DELvip$DELv6
+ params:
+ $NAME: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_core_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_ims_core_v6_vip_0 }
+
+ cif_oam_vip_3_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $NAME$DELcif$DELoam$DELvip1
+ params:
+ $NAME: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: oam_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_oam_vip_1 }
+
+ cif_ims_li_v6_vip_4_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $NAME$DELcif$DELims$DELli$DELvip$DELv6
+ params:
+ $NAME: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_li_v6_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_ims_li_v6_vip_0 }
+
+ lbd_internal_dpdk_vip_1_port:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_dpdk_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $NAME$DELlbd$DELinternal$DELdpdk$DELvip
+ params:
+ $NAME: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_dpdk_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: lbd_internal_dpdk_vip_0 }
+
+ lbd_ims_core_v6_vip_2_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $NAME$DELlbd$DELims$DELcore$DELvip$DELv6
+ params:
+ $NAME: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_core_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: lbd_ims_core_v6_vip_0 }
+
+ cdi_internal_v6_vip_0_port:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_v6_0
+ properties:
+ name:
+ str_replace:
+ template: $NAME$DELcdi$DELinternal$DELvip$DELv6
+ params:
+ $NAME: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cdi_internal_v6_vip_0 }
+
+ cdi_ims_core_v6_vip_1_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $NAME$DELcdi$DELims$DELdb$DELvip$DELv6
+ params:
+ $NAME: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_core_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cdi_ims_core_v6_vip_0 }
+
+ oam_internal_vip_0_port:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $NAME$DELoam$DELinternal$DELvip
+ params:
+ $NAME: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: oam_internal_vip_0 }
+
+ oam_oam_vip_1_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $NAME$DELoam$DELoam$DELvip
+ params:
+ $NAME: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: oam_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: oam_oam_vip_0 }
+
+ oam_internal_0_port_0:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX: { get_param: oam_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: oam_internal_ip_0 }
+ allowed_address_pairs:
+ - ip_address: "0.0.0.0/1"
+ - ip_address: "128.0.0.0/1"
+ - ip_address: "::/1"
+ - ip_address: "8000::/1"
+
+ oam_oam_0_port_1:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX: { get_param: oam_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: oam_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: oam_oam_ip_0 }
+ allowed_address_pairs:
+ - ip_address: { get_param: oam_oam_vip_0}
+
+
+ oam_server_0:
+ type: OS::Nova::Server
+ properties:
+ availability_zone: { get_param: availability_zone_0 }
+ scheduler_hints: { group: { get_resource: oam_server_group } }
+ name: { get_param: oam_name_0 }
+ flavor: { get_param: oam_flavor_name }
+ image: { get_param: oam_image_name }
+ metadata:
+ vm_role: oam
+ vnf_id: {get_param: vnf_id}
+ vnf_name: {get_param: vnf_name}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ networks:
+ - port: { get_resource: oam_internal_0_port_0 }
+ - port: { get_resource: oam_oam_0_port_1 }
+ block_device_mapping:
+ - device_name: vdb
+ volume_id: { get_param: oam_volume_id_0 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ DN=$dn_name
+ DUName=$du_name
+ Uuid=$uuid
+ SwRepoIp=$swrepo_ip
+ CmRepoIp=$cmrepo_ip
+ OamDnsIp=$dns_ip
+ eth0_MTU=$mtu
+ UniqueId=$dn_name/$du_name/$release/$uuid
+ OamNetmask=$oam_netmask
+ OamIp=$oam_ip
+ OamCipa=$oam_cipa_ip
+ NodeCipa=$node_cipa_ip
+ Gateway=$gateway
+ OamGateway=$gateway
+ NodeIp=$node_ip
+ Netmask=$netmask
+ NodeType=OAM
+ DUType=CSCF
+ Release=$release
+ SwRepoPort=5571
+ CmRepoPort=8051
+ LbGroupId=1
+ HaGroupId=101
+ NodeName=$instance_name
+ params:
+ $dn_name: { get_param: vcscf_dn}
+ $du_name: { get_param: vcscf_du }
+ $uuid: { get_param: oam_uuid_0 }
+ $dns_ip: { get_param: vcscf_dns_address }
+ $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+ $swrepo_ip: { get_param: vcscf_swrepo_address }
+ $release: { get_param: vcscf_release }
+ $mtu: { get_param: vcscf_internal_network_mtu }
+ $node_ip: { get_param: oam_internal_ip_0 }
+ $netmask: { get_param: vcscf_internal_netmask }
+ $gateway: { get_param: vcscf_default_gateway}
+ $oam_ip: { get_param: oam_oam_ip_0 }
+ $oam_netmask: { get_param: vcscf_oam_netmask }
+ $node_cipa_ip: { get_param: oam_internal_vip_0 }
+ $oam_cipa_ip: { get_param: oam_oam_vip_0 }
+ $instance_name: { get_param: oam_name_0 }
+
+
+ oam_internal_1_port_0:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX: { get_param: oam_name_1 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: oam_internal_ip_1 }
+ allowed_address_pairs:
+ - ip_address: "0.0.0.0/1"
+ - ip_address: "128.0.0.0/1"
+ - ip_address: "::/1"
+ - ip_address: "8000::/1"
+
+ oam_oam_1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX: { get_param: oam_name_1 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: oam_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: oam_oam_ip_1 }
+ allowed_address_pairs:
+ - ip_address: { get_param: oam_oam_vip_0}
+
+
+ oam_server_1:
+ type: OS::Nova::Server
+ properties:
+ availability_zone: { get_param: availability_zone_1 }
+ scheduler_hints: { group: { get_resource: oam_server_group } }
+ name: { get_param: oam_name_1 }
+ flavor: { get_param: oam_flavor_name }
+ image: { get_param: oam_image_name }
+ metadata:
+ vm_role: oam
+ vnf_id: {get_param: vnf_id}
+ vnf_name: {get_param: vnf_name}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ networks:
+ - port: { get_resource: oam_internal_1_port_0 }
+ - port: { get_resource: oam_oam_1_port_1 }
+ block_device_mapping:
+ - device_name: vdb
+ volume_id: { get_param: oam_volume_id_1 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ DN=$dn_name
+ DUName=$du_name
+ Uuid=$uuid
+ SwRepoIp=$swrepo_ip
+ CmRepoIp=$cmrepo_ip
+ OamDnsIp=$dns_ip
+ eth0_MTU=$mtu
+ UniqueId=$dn_name/$du_name/$release/$uuid
+ OamNetmask=$oam_netmask
+ OamIp=$oam_ip
+ OamCipa=$oam_cipa_ip
+ NodeCipa=$node_cipa_ip
+ Gateway=$gateway
+ OamGateway=$gateway
+ NodeIp=$node_ip
+ Netmask=$netmask
+ NodeType=OAM
+ DUType=CSCF
+ Release=$release
+ SwRepoPort=5571
+ CmRepoPort=8051
+ LbGroupId=1
+ HaGroupId=101
+ NodeName=$instance_name
+ params:
+ $dn_name: { get_param: vcscf_dn}
+ $du_name: { get_param: vcscf_du }
+ $uuid: { get_param: oam_uuid_1 }
+ $dns_ip: { get_param: vcscf_dns_address }
+ $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+ $swrepo_ip: { get_param: vcscf_swrepo_address }
+ $release: { get_param: vcscf_release }
+ $mtu: { get_param: vcscf_internal_network_mtu }
+ $node_ip: { get_param: oam_internal_ip_1 }
+ $netmask: { get_param: vcscf_internal_netmask }
+ $gateway: { get_param: vcscf_default_gateway}
+ $oam_ip: { get_param: oam_oam_ip_1 }
+ $oam_netmask: { get_param: vcscf_oam_netmask }
+ $node_cipa_ip: { get_param: oam_internal_vip_0 }
+ $oam_cipa_ip: { get_param: oam_oam_vip_0 }
+ $instance_name: { get_param: oam_name_1 }
+
+ oam_internal_2_port_0:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX: { get_param: oam_name_2 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: oam_internal_ip_2 }
+ allowed_address_pairs:
+ - ip_address: "0.0.0.0/1"
+ - ip_address: "128.0.0.0/1"
+ - ip_address: "::/1"
+ - ip_address: "8000::/1"
+
+ oam_oam_2_port_1:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX: { get_param: oam_name_2 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: oam_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: oam_oam_ip_2 }
+ allowed_address_pairs:
+ - ip_address: { get_param: oam_oam_vip_0}
+
+
+ oam_server_2:
+ type: OS::Nova::Server
+ properties:
+ availability_zone: { get_param: availability_zone_0 }
+ scheduler_hints: { group: { get_resource: oam_server_group } }
+ name: { get_param: oam_name_2 }
+ flavor: { get_param: oam_flavor_name }
+ image: { get_param: oam_image_name }
+ metadata:
+ vm_role: oam
+ vnf_id: {get_param: vnf_id}
+ vnf_name: {get_param: vnf_name}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ networks:
+ - port: { get_resource: oam_internal_2_port_0 }
+ - port: { get_resource: oam_oam_2_port_1 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ DN=$dn_name
+ DUName=$du_name
+ Uuid=$uuid
+ SwRepoIp=$swrepo_ip
+ CmRepoIp=$cmrepo_ip
+ OamDnsIp=$dns_ip
+ eth0_MTU=$mtu
+ UniqueId=$dn_name/$du_name/$release/$uuid
+ OamNetmask=$oam_netmask
+ OamIp=$oam_ip
+ OamCipa=$oam_cipa_ip
+ NodeCipa=$node_cipa_ip
+ Gateway=$gateway
+ OamGateway=$gateway
+ NodeIp=$node_ip
+ Netmask=$netmask
+ NodeType=OAM
+ DUType=CSCF
+ Release=$release
+ SwRepoPort=5571
+ CmRepoPort=8051
+ LbGroupId=1
+ HaGroupId=101
+ NodeName=$instance_name
+ params:
+ $dn_name: { get_param: vcscf_dn}
+ $du_name: { get_param: vcscf_du }
+ $uuid: { get_param: oam_uuid_2 }
+ $dns_ip: { get_param: vcscf_dns_address }
+ $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+ $swrepo_ip: { get_param: vcscf_swrepo_address }
+ $release: { get_param: vcscf_release }
+ $mtu: { get_param: vcscf_internal_network_mtu }
+ $node_ip: { get_param: oam_internal_ip_2 }
+ $netmask: { get_param: vcscf_internal_netmask }
+ $gateway: { get_param: vcscf_default_gateway}
+ $oam_ip: { get_param: oam_oam_ip_2 }
+ $oam_netmask: { get_param: vcscf_oam_netmask }
+ $node_cipa_ip: { get_param: oam_internal_vip_0 }
+ $oam_cipa_ip: { get_param: oam_oam_vip_0 }
+ $instance_name: { get_param: oam_name_2 }
+
+
+ cif_internal_0_port_0:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX: { get_param: cif_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_internal_ip_0 }
+ - ip_address: { get_param: cif_internal_v6_ip_0 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cif_internal_vip_0 }
+
+ cif_oam_0_port_1:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX: { get_param: cif_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: oam_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_oam_ip_0 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cif_oam_vip_0}
+
+ cif_ims_core_0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth2
+ params:
+ $PREFIX: { get_param: cif_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_core_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_ims_core_v6_ip_0 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cif_ims_core_v6_vip_0}
+
+
+ cif_oam_0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth3
+ params:
+ $PREFIX: { get_param: cif_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: oam_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_oam_ip_2 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cif_oam_vip_1}
+
+
+ cif_ims_li_0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth4
+ params:
+ $PREFIX: { get_param: cif_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_li_v6_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_ims_li_v6_ip_0 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cif_ims_li_v6_vip_0}
+
+ cif_server_0:
+ type: OS::Nova::Server
+ properties:
+ availability_zone: { get_param: availability_zone_0 }
+ scheduler_hints: { group: { get_resource: cif_server_group } }
+ name: { get_param: cif_name_0 }
+ flavor: { get_param: cif_flavor_name }
+ image: { get_param: cif_image_name }
+ metadata:
+ vnf_id: {get_param: vnf_id}
+ vm_role: cif
+ vnf_name: {get_param: vnf_name}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ networks:
+ - port: { get_resource: cif_internal_0_port_0 }
+ - port: { get_resource: cif_oam_0_port_1 }
+ - port: { get_resource: cif_ims_core_0_port_2 }
+ - port: { get_resource: cif_oam_0_port_3 }
+ - port: { get_resource: cif_ims_li_0_port_4 }
+ block_device_mapping:
+ - device_name: vdb
+ volume_id: { get_param: cif_volume_id_0 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ DN=$dn_name
+ DUName=$du_name
+ Uuid=$uuid
+ SwRepoIp=$swrepo_ip
+ CmRepoIp=$cmrepo_ip
+ OamDnsIp=$dns_ip
+ eth0_MTU=$mtu
+ UniqueId=$dn_name/$du_name/$release/$uuid
+ OAMUnitInternalIp=$oam_unit_ip
+ NodeIp=$node_ip
+ Netmask=$netmask
+ Gateway=$oam_unit_ip
+ NodeType=CIF
+ DUType=CSCF
+ Release=$release
+ SwRepoPort=5571
+ CmRepoPort=8051
+ LbGroupId=1
+ HaGroupId=1
+ NodeName=$instance_name
+ params:
+ $dn_name: { get_param: vcscf_dn}
+ $du_name: { get_param: vcscf_du }
+ $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+ $swrepo_ip: { get_param: vcscf_swrepo_address }
+ $oam_unit_ip: { get_param: oam_internal_vip_0 }
+ $netmask: { get_param: vcscf_internal_netmask }
+ $release: { get_param: vcscf_release }
+ $mtu: { get_param: vcscf_internal_network_mtu }
+ $dns_ip: { get_param: vcscf_dns_address }
+ $uuid: { get_param: cif_uuid_0 }
+ $node_ip: { get_param: cif_internal_ip_0 }
+ $instance_name: { get_param: cif_name_0 }
+
+ cif_internal_1_port_0:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX: { get_param: cif_name_1 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_internal_ip_1 }
+ - ip_address: { get_param: cif_internal_v6_ip_1 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cif_internal_vip_0 }
+
+
+ cif_oam_1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX: { get_param: cif_name_1 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: oam_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_oam_ip_1 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cif_oam_vip_0}
+
+ cif_ims_core_1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth2
+ params:
+ $PREFIX: { get_param: cif_name_1 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_core_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_ims_core_v6_ip_1 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cif_ims_core_v6_vip_0}
+
+ cif_oam_1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth3
+ params:
+ $PREFIX: { get_param: cif_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: oam_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_oam_ip_3 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cif_oam_vip_1}
+
+
+ cif_ims_li_1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth4
+ params:
+ $PREFIX: { get_param: cif_name_1 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_li_v6_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cif_ims_li_v6_ip_1 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cif_ims_li_v6_vip_0}
+
+ cif_server_1:
+ type: OS::Nova::Server
+ properties:
+ availability_zone: { get_param: availability_zone_1 }
+ scheduler_hints: { group: { get_resource: cif_server_group } }
+ name: { get_param: cif_name_1 }
+ flavor: { get_param: cif_flavor_name }
+ image: { get_param: cif_image_name }
+ metadata:
+ vnf_id: {get_param: vnf_id}
+ vm_role: cif
+ vnf_name: {get_param: vnf_name}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ networks:
+ - port: { get_resource: cif_internal_1_port_0 }
+ - port: { get_resource: cif_oam_1_port_1 }
+ - port: { get_resource: cif_ims_core_1_port_2 }
+ - port: { get_resource: cif_oam_1_port_3 }
+ - port: { get_resource: cif_ims_li_1_port_4 }
+ block_device_mapping:
+ - device_name: vdb
+ volume_id: { get_param: cif_volume_id_1 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ DN=$dn_name
+ DUName=$du_name
+ Uuid=$uuid
+ SwRepoIp=$swrepo_ip
+ CmRepoIp=$cmrepo_ip
+ OamDnsIp=$dns_ip
+ eth0_MTU=$mtu
+ UniqueId=$dn_name/$du_name/$release/$uuid
+ OAMUnitInternalIp=$oam_unit_ip
+ NodeIp=$node_ip
+ Netmask=$netmask
+ Gateway=$oam_unit_ip
+ NodeType=CIF
+ DUType=CSCF
+ Release=$release
+ SwRepoPort=5571
+ CmRepoPort=8051
+ LbGroupId=1
+ HaGroupId=1
+ NodeName=$instance_name
+ params:
+ $dn_name: { get_param: vcscf_dn}
+ $du_name: { get_param: vcscf_du }
+ $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+ $swrepo_ip: { get_param: vcscf_swrepo_address }
+ $oam_unit_ip: { get_param: oam_internal_vip_0 }
+ $netmask: { get_param: vcscf_internal_netmask }
+ $release: { get_param: vcscf_release }
+ $mtu: { get_param: vcscf_internal_network_mtu }
+ $dns_ip: { get_param: vcscf_dns_address }
+ $uuid: { get_param: cif_uuid_1 }
+ $node_ip: { get_param: cif_internal_ip_1 }
+ $instance_name: { get_param: cif_name_1 }
+
+ lbd_internal_0_port_0:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX: { get_param: lbd_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: lbd_internal_ip_0 }
+
+ lbd_dpdk_0_port_1:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_dpdk_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX: { get_param: lbd_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_dpdk_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: lbd_internal_dpdk_ip_0 }
+ allowed_address_pairs:
+ - ip_address: "0.0.0.0/1"
+ - ip_address: "128.0.0.0/1"
+ - ip_address: "::/1"
+ - ip_address: "8000::/1"
+
+ lbd_ims_core_0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth2
+ params:
+ $PREFIX: { get_param: lbd_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_core_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: lbd_ims_core_v6_ip_0 }
+ allowed_address_pairs:
+ - ip_address: { get_param: lbd_ims_core_v6_vip_0}
+
+ lbd_server_0:
+ type: OS::Nova::Server
+ properties:
+ availability_zone: { get_param: availability_zone_0 }
+ scheduler_hints: { group: { get_resource: lbd_server_group } }
+ name: { get_param: lbd_name_0 }
+ flavor: { get_param: lbd_flavor_name }
+ image: { get_param: lbd_image_name }
+ metadata:
+ vnf_id: {get_param: vnf_id}
+ vm_role: lbd
+ vnf_name: {get_param: vnf_name}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ networks:
+ - port: { get_resource: lbd_internal_0_port_0 }
+ - port: { get_resource: lbd_dpdk_0_port_1 }
+ - port: { get_resource: lbd_ims_core_0_port_2 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ DN=$dn_name
+ DUName=$du_name
+ Uuid=$uuid
+ SwRepoIp=$swrepo_ip
+ CmRepoIp=$cmrepo_ip
+ OamDnsIp=$dns_ip
+ eth0_MTU=$mtu
+ eth1_MTU=$mtu
+ UniqueId=$dn_name/$du_name/$release/$uuid
+ OAMUnitInternalIp=$oam_unit_ip
+ NodeIp=$node_ip
+ Netmask=$netmask
+ Gateway=$oam_unit_ip
+ NodeType=L2TD
+ DUType=CSCF
+ Release=$release
+ SwRepoPort=5571
+ CmRepoPort=8051
+ LbGroupId=1
+ HaGroupId=1
+ NodeName=$instance_name
+ params:
+ $dn_name: { get_param: vcscf_dn}
+ $du_name: { get_param: vcscf_du }
+ $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+ $swrepo_ip: { get_param: vcscf_swrepo_address }
+ $netmask: { get_param: vcscf_internal_netmask }
+ $release: { get_param: vcscf_release }
+ $mtu: { get_param: vcscf_internal_network_mtu }
+ $oam_unit_ip: { get_param: oam_internal_vip_0 }
+ $dns_ip: { get_param: vcscf_dns_address }
+ $uuid: { get_param: lbd_uuid_0 }
+ $node_ip: { get_param: lbd_internal_ip_0 }
+ $instance_name: { get_param: lbd_name_0 }
+
+ lbd_internal_1_port_0:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX: { get_param: lbd_name_1 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: lbd_internal_ip_1 }
+
+ lbd_dpdk_1_port_1:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_dpdk_subnet_0
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX: { get_param: lbd_name_1 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_dpdk_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: lbd_internal_dpdk_ip_1 }
+ allowed_address_pairs:
+ - ip_address: "0.0.0.0/1"
+ - ip_address: "128.0.0.0/1"
+ - ip_address: "::/1"
+ - ip_address: "8000::/1"
+
+ lbd_ims_core_1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth2
+ params:
+ $PREFIX: { get_param: lbd_name_1 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_core_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: lbd_ims_core_v6_ip_1 }
+ allowed_address_pairs:
+ - ip_address: { get_param: lbd_ims_core_v6_vip_0}
+
+ lbd_server_1:
+ type: OS::Nova::Server
+ properties:
+ availability_zone: { get_param: availability_zone_1 }
+ scheduler_hints: { group: { get_resource: lbd_server_group } }
+ name: { get_param: lbd_name_1 }
+ flavor: { get_param: lbd_flavor_name }
+ image: { get_param: lbd_image_name }
+ metadata:
+ vnf_id: {get_param: vnf_id}
+ vm_role: lbd
+ vnf_name: {get_param: vnf_name}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ networks:
+ - port: { get_resource: lbd_internal_1_port_0 }
+ - port: { get_resource: lbd_dpdk_1_port_1 }
+ - port: { get_resource: lbd_ims_core_1_port_2 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ DN=$dn_name
+ DUName=$du_name
+ Uuid=$uuid
+ SwRepoIp=$swrepo_ip
+ CmRepoIp=$cmrepo_ip
+ OamDnsIp=$dns_ip
+ eth0_MTU=$mtu
+ eth1_MTU=$mtu
+ UniqueId=$dn_name/$du_name/$release/$uuid
+ OAMUnitInternalIp=$oam_unit_ip
+ NodeIp=$node_ip
+ Netmask=$netmask
+ Gateway=$oam_unit_ip
+ NodeType=L2TD
+ DUType=CSCF
+ Release=$release
+ SwRepoPort=5571
+ CmRepoPort=8051
+ LbGroupId=1
+ HaGroupId=1
+ NodeName=$instance_name
+ params:
+ $dn_name: { get_param: vcscf_dn}
+ $du_name: { get_param: vcscf_du }
+ $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+ $swrepo_ip: { get_param: vcscf_swrepo_address }
+ $netmask: { get_param: vcscf_internal_netmask }
+ $release: { get_param: vcscf_release }
+ $mtu: { get_param: vcscf_internal_network_mtu }
+ $oam_unit_ip: { get_param: oam_internal_vip_0 }
+ $dns_ip: { get_param: vcscf_dns_address }
+ $uuid: { get_param: lbd_uuid_1 }
+ $node_ip: { get_param: lbd_internal_ip_1 }
+ $instance_name: { get_param: lbd_name_1 }
+
+ cdi_internal_0_port_0:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_0
+ - cscf_internal_subnet_v6_0
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX: { get_param: cdi_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cdi_internal_ip_0 }
+ - ip_address: { get_param: cdi_internal_v6_ip_0 }
+ allowed_address_pairs:
+ - ip_address: "0.0.0.0/1"
+ - ip_address: "128.0.0.0/1"
+ - ip_address: "::/1"
+ - ip_address: "8000::/1"
+
+ cdi_ims_core_0_port_1:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX: { get_param: cdi_name_0 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_core_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips :
+ - ip_address: { get_param: cdi_ims_core_v6_ip_0 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cdi_ims_core_v6_vip_0}
+
+ cdi_server_0:
+ type: OS::Nova::Server
+ properties:
+ availability_zone: { get_param: availability_zone_0 }
+ scheduler_hints: { group: { get_resource: cdi_server_group } }
+ name: { get_param: cdi_name_0 }
+ flavor: { get_param: cdi_flavor_name }
+ image: { get_param: cdi_image_name }
+ metadata:
+ vnf_id: {get_param: vnf_id}
+ vm_role: cdi
+ vnf_name: {get_param: vnf_name}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ networks:
+ - port: { get_resource: cdi_internal_0_port_0 }
+ - port: { get_resource: cdi_ims_core_0_port_1 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ DN=$dn_name
+ DUName=$du_name
+ Uuid=$uuid
+ SwRepoIp=$swrepo_ip
+ CmRepoIp=$cmrepo_ip
+ OamDnsIp=$dns_ip
+ eth0_MTU=$mtu
+ UniqueId=$dn_name/$du_name/$release/$uuid
+ OAMUnitInternalIp=$oam_unit_ip
+ NodeIp=$node_ip
+ Netmask=$netmask
+ Gateway=$oam_unit_ip
+ NodeType=CDI
+ DUType=CSCF
+ Release=$release
+ SwRepoPort=5571
+ CmRepoPort=8051
+ LbGroupId=1
+ HaGroupId=1
+ NodeName=$instance_name
+ params:
+ $dn_name: { get_param: vcscf_dn}
+ $du_name: { get_param: vcscf_du }
+ $dns_ip: { get_param: vcscf_dns_address }
+ $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+ $swrepo_ip: { get_param: vcscf_swrepo_address }
+ $oam_unit_ip: { get_param: oam_internal_vip_0 }
+ $netmask: { get_param: vcscf_internal_netmask }
+ $release: { get_param: vcscf_release }
+ $mtu: { get_param: vcscf_internal_network_mtu }
+ $node_ip: { get_param: cdi_internal_ip_0 }
+ $uuid: { get_param: cdi_uuid_0 }
+ $instance_name: { get_param: cdi_name_0 }
+
+ cdi_internal_1_port_0:
+ type: OS::Neutron::Port
+ depends_on:
+ - cscf_internal_subnet_0
+ - cscf_internal_subnet_v6_0
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX: { get_param: cdi_name_1 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_resource: cscf_internal_network_0 }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips:
+ - ip_address: { get_param: cdi_internal_ip_1 }
+ - ip_address: { get_param: cdi_internal_v6_ip_1 }
+ allowed_address_pairs:
+ - ip_address: "0.0.0.0/1"
+ - ip_address: "128.0.0.0/1"
+ - ip_address: "::/1"
+ - ip_address: "8000::/1"
+
+ cdi_ims_core_1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX: { get_param: cdi_name_1 }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: ims_core_net_id }
+ security_groups:
+ - { get_resource: cscf_RSG }
+ fixed_ips :
+ - ip_address: { get_param: cdi_ims_core_v6_ip_1 }
+ allowed_address_pairs:
+ - ip_address: { get_param: cdi_ims_core_v6_vip_0}
+
+ cdi_server_1:
+ type: OS::Nova::Server
+ properties:
+ availability_zone: { get_param: availability_zone_1 }
+ scheduler_hints: { group: { get_resource: cdi_server_group } }
+ name: { get_param: cdi_name_1 }
+ flavor: { get_param: cdi_flavor_name }
+ image: { get_param: cdi_image_name }
+ metadata:
+ vnf_id: {get_param: vnf_id}
+ vm_role: cdi
+ vnf_name: {get_param: vnf_name}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ networks:
+ - port: { get_resource: cdi_internal_1_port_0 }
+ - port: { get_resource: cdi_ims_core_1_port_1 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ DN=$dn_name
+ DUName=$du_name
+ Uuid=$uuid
+ SwRepoIp=$swrepo_ip
+ CmRepoIp=$cmrepo_ip
+ OamDnsIp=$dns_ip
+ eth0_MTU=$mtu
+ UniqueId=$dn_name/$du_name/$release/$uuid
+ OAMUnitInternalIp=$oam_unit_ip
+ NodeIp=$node_ip
+ Netmask=$netmask
+ Gateway=$oam_unit_ip
+ NodeType=CDI
+ DUType=CSCF
+ Release=$release
+ SwRepoPort=5571
+ CmRepoPort=8051
+ LbGroupId=1
+ HaGroupId=1
+ NodeName=$instance_name
+ params:
+ $dn_name: { get_param: vcscf_dn}
+ $du_name: { get_param: vcscf_du }
+ $dns_ip: { get_param: vcscf_dns_address }
+ $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+ $swrepo_ip: { get_param: vcscf_swrepo_address }
+ $oam_unit_ip: { get_param: oam_internal_vip_0 }
+ $netmask: { get_param: vcscf_internal_netmask }
+ $release: { get_param: vcscf_release }
+ $mtu: { get_param: vcscf_internal_network_mtu }
+ $node_ip: { get_param: cdi_internal_ip_1 }
+ $uuid: { get_param: cdi_uuid_1 }
+ $instance_name: { get_param: cdi_name_1 }
+
+ tdcore_zone_0_RRG:
+ type: OS::Heat::ResourceGroup
+ depends_on:
+ - cscf_internal_subnet_0
+ - cscf_internal_dpdk_subnet_0
+ properties:
+ count: { get_param: tdcore_zone_0_count }
+ index_var: $INDEX
+ resource_def:
+ type: nested_tdcore.yaml
+ properties:
+ index: $INDEX
+ tdcore_server_group: { get_resource: tdcore_zone_0_server_group }
+ vnf_name: { get_param: vnf_name }
+ vcscf_name_delimeter: { get_param: vcscf_name_delimeter }
+ tdcore_flavor_name: { get_param: tdcore_flavor_name }
+ tdcore_image_name: { get_param: tdcore_image_name }
+ tdcore_security_group: { get_resource: cscf_RSG }
+ internal_net_id: { get_resource: cscf_internal_network_0 }
+ internal_dpdk_net_id: { get_resource: cscf_internal_dpdk_network_0 }
+ vcscf_dn: { get_param: vcscf_dn}
+ vcscf_du: { get_param: vcscf_du }
+ vcscf_cmrepo_address: { get_param: vcscf_cmrepo_address }
+ vcscf_swrepo_address: { get_param: vcscf_swrepo_address }
+ vcscf_gateway: { get_param: oam_internal_vip_0 }
+ vcscf_internal_netmask: { get_param: vcscf_internal_netmask }
+ vcscf_release: { get_param: vcscf_release }
+ vcscf_dns_address: { get_param: vcscf_dns_address }
+ vcscf_internal_network_mtu: { get_param: vcscf_internal_network_mtu }
+ vnf_id: {get_param: vnf_id}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ availability_zone_0: { get_param: availability_zone_0 }
+ tdcore_internal_ips: { get_param: tdcore_internal_zone_0_ips }
+ tdcore_dpdk_ips: { get_param: tdcore_dpdk_zone_0_ips }
+ tdcore_names: { get_param: tdcore_zone_0_names }
+ tdcore_uuids: { get_param: tdcore_zone_0_uuids }
+
+ tdcore_zone_1_RRG:
+ type: OS::Heat::ResourceGroup
+ depends_on:
+ - cscf_internal_subnet_0
+ - cscf_internal_dpdk_subnet_0
+ properties:
+ count: { get_param: tdcore_zone_1_count }
+ index_var: $INDEX
+ resource_def:
+ type: nested_tdcore.yaml
+ properties:
+ index: $INDEX
+ tdcore_server_group: { get_resource: tdcore_zone_1_server_group }
+ vnf_name: { get_param: vnf_name }
+ vcscf_name_delimeter: { get_param: vcscf_name_delimeter }
+ tdcore_flavor_name: { get_param: tdcore_flavor_name }
+ tdcore_image_name: { get_param: tdcore_image_name }
+ tdcore_security_group: { get_resource: cscf_RSG }
+ internal_net_id: { get_resource: cscf_internal_network_0 }
+ internal_dpdk_net_id: { get_resource: cscf_internal_dpdk_network_0 }
+ vcscf_dn: { get_param: vcscf_dn}
+ vcscf_du: { get_param: vcscf_du }
+ vcscf_cmrepo_address: { get_param: vcscf_cmrepo_address }
+ vcscf_swrepo_address: { get_param: vcscf_swrepo_address }
+ vcscf_gateway: { get_param: oam_internal_vip_0 }
+ vcscf_internal_netmask: { get_param: vcscf_internal_netmask }
+ vcscf_release: { get_param: vcscf_release }
+ vcscf_dns_address: { get_param: vcscf_dns_address }
+ vcscf_internal_network_mtu: { get_param: vcscf_internal_network_mtu }
+ vnf_id: {get_param: vnf_id}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ availability_zone_0: { get_param: availability_zone_1 }
+ tdcore_internal_ips: { get_param: tdcore_internal_zone_1_ips }
+ tdcore_dpdk_ips: { get_param: tdcore_dpdk_zone_1_ips }
+ tdcore_names: { get_param: tdcore_zone_1_names }
+ tdcore_uuids: { get_param: tdcore_zone_1_uuids }
+
+ cscf_zone_0_RRG:
+ type: OS::Heat::ResourceGroup
+ depends_on:
+ - cscf_internal_subnet_0
+ - cscf_internal_subnet_v6_0
+ properties:
+ count: { get_param: cscf_zone_0_count }
+ index_var: $INDEX
+ resource_def:
+ type: nested_cscf.yaml
+ properties:
+ index: $INDEX
+ vnf_name: { get_param: vnf_name }
+ vcscf_name_delimeter: { get_param: vcscf_name_delimeter }
+ cscf_flavor_name: { get_param: cscf_flavor_name }
+ cscf_image_name: { get_param: cscf_image_name }
+ cscf_security_group: { get_resource: cscf_RSG }
+ internal_net_id: { get_resource: cscf_internal_network_0 }
+ vcscf_dn: { get_param: vcscf_dn}
+ vcscf_du: { get_param: vcscf_du }
+ vcscf_cmrepo_address: { get_param: vcscf_cmrepo_address }
+ vcscf_swrepo_address: { get_param: vcscf_swrepo_address }
+ vcscf_gateway: { get_param: oam_internal_vip_0 }
+ vcscf_internal_netmask: { get_param: vcscf_internal_netmask }
+ vcscf_release: { get_param: vcscf_release }
+ vcscf_dns_address: { get_param: vcscf_dns_address }
+ vcscf_internal_network_mtu: { get_param: vcscf_internal_network_mtu }
+ vnf_id: {get_param: vnf_id}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ availability_zone_0 : { get_param: availability_zone_0 }
+ cscf_internal_ips: { get_param: cscf_internal_zone_0_ips }
+ cscf_internal_v6_ips: { get_param: cscf_internal_zone_0_v6_ips }
+ cscf_names: { get_param: cscf_zone_0_names }
+ cscf_uuids: { get_param: cscf_zone_0_uuids }
+
+ cscf_zone_1_RRG:
+ type: OS::Heat::ResourceGroup
+ depends_on:
+ - cscf_internal_subnet_0
+ - cscf_internal_subnet_v6_0
+ properties:
+ count: { get_param: cscf_zone_1_count }
+ index_var: $INDEX
+ resource_def:
+ type: nested_cscf.yaml
+ properties:
+ index: $INDEX
+ vnf_name: { get_param: vnf_name }
+ vcscf_name_delimeter: { get_param: vcscf_name_delimeter }
+ cscf_flavor_name: { get_param: cscf_flavor_name }
+ cscf_image_name: { get_param: cscf_image_name }
+ cscf_security_group: { get_resource: cscf_RSG }
+ internal_net_id: { get_resource: cscf_internal_network_0 }
+ vcscf_dn: { get_param: vcscf_dn}
+ vcscf_du: { get_param: vcscf_du }
+ vcscf_cmrepo_address: { get_param: vcscf_cmrepo_address }
+ vcscf_swrepo_address: { get_param: vcscf_swrepo_address }
+ vcscf_gateway: { get_param: oam_internal_vip_0 }
+ vcscf_internal_netmask: { get_param: vcscf_internal_netmask }
+ vcscf_release: { get_param: vcscf_release }
+ vcscf_dns_address: { get_param: vcscf_dns_address }
+ vcscf_internal_network_mtu: { get_param: vcscf_internal_network_mtu }
+ vnf_id: {get_param: vnf_id}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ cscf_internal_ips: { get_param: cscf_internal_zone_1_ips }
+ cscf_internal_v6_ips: { get_param: cscf_internal_zone_1_v6_ips }
+ cscf_names: { get_param: cscf_zone_1_names }
+ cscf_uuids: { get_param: cscf_zone_1_uuids }
+ availability_zone_0 : { get_param: availability_zone_1 }
+
+outputs:
+ internal_net_id:
+ description: internal network
+ value: {get_resource: cscf_internal_network_0}
+
+ internal_dpdk_net_id:
+ description: dpdk network
+ value: {get_resource: cscf_internal_dpdk_network_0}
+
+ cscf_security_group:
+ description: cscf security group
+ value: {get_resource: cscf_RSG}
+
+ tdcore_zone_0_server_group:
+ description: tdcore zone 0 server group name/id
+ value: {get_resource: tdcore_zone_0_server_group}
+
+ tdcore_zone_1_server_group:
+ description: tdcore zone 1 server group name/id
+ value: {get_resource: tdcore_zone_1_server_group}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf_volume.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf_volume.env
new file mode 100644
index 0000000000..68c2dd1831
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf_volume.env
@@ -0,0 +1,19 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX
+## Name: "base_cscf_volume.env"
+## Date: 20 Mar 2017
+## Kilo Version
+parameters:
+
+# PSEUDO CONSTANTS
+# -----------------------------------------------------------------------------
+ cif_volume_size_0: 300
+ oam_volume_size_0: 300
+ vcscf_name_delimeter: "_"
+
+# SITE SPECIFIC
+# -----------------------------------------------------------------------------
+# vnf_name: CSCF0001
+ # storage availability zones
+# availability_zone_0: zone1
+# availability_zone_1: zone2
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf_volume.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf_volume.yaml
new file mode 100644
index 0000000000..cf0bd8b612
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/base_cscf_volume.yaml
@@ -0,0 +1,105 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX
+## Name: "base_cscf_volume.yaml"
+## Date: 20 Mar 2017
+## Kilo Version
+heat_template_version: 2015-04-30
+
+description: Volume template for CFX
+
+parameters:
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+
+ vcscf_name_delimeter:
+ type: string
+ description: 'delimeter used in concatenating different words while naming (ex: "-","_",".",...)'
+ constraints:
+ - allowed_values: [ '-', '', '_', '.']
+
+ availability_zone_0:
+ type: string
+ description: Storage availability zone for volume of first vm
+
+ availability_zone_1:
+ type: string
+ description: Storage availability zone for volume of second vm
+
+ cif_volume_size_0:
+ type: number
+ description: Size of Volume for cif VMs
+ constraints:
+ - range: { min: 1, max: 300 }
+
+ oam_volume_size_0:
+ type: number
+ description: Size of Volume for oam VMs
+ constraints:
+ - range: { min: 1, max: 300 }
+
+resources:
+ cif_volume_0:
+ type: OS::Cinder::Volume
+ properties:
+ size: { get_param: cif_volume_size_0 }
+ availability_zone: { get_param: availability_zone_0}
+ name:
+ str_replace:
+ template: "$VNF$DELcif$DELvolume$DEL0"
+ params:
+ $VNF: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+
+ cif_volume_1:
+ type: OS::Cinder::Volume
+ properties:
+ availability_zone: { get_param: availability_zone_1}
+ size: { get_param: cif_volume_size_0 }
+ name:
+ str_replace:
+ template: "$VNF$DELcif$DELvolume$DEL1"
+ params:
+ $VNF: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+
+ oam_volume_0:
+ type: OS::Cinder::Volume
+ properties:
+ size: { get_param: oam_volume_size_0 }
+ availability_zone: { get_param: availability_zone_0}
+ name:
+ str_replace:
+ template: "$VNF$DELoam$DELvolume$DEL0"
+ params:
+ $VNF: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+
+ oam_volume_1:
+ type: OS::Cinder::Volume
+ properties:
+ size: { get_param: oam_volume_size_0 }
+ availability_zone: { get_param: availability_zone_1}
+ name:
+ str_replace:
+ template: "$VNF$DELoam$DELvolume$DEL1"
+ params:
+ $VNF: { get_param: vnf_name }
+ $DEL: { get_param: vcscf_name_delimeter }
+
+outputs:
+ cif_volume_id_0:
+ description: volume id for first cif
+ value: {get_resource: cif_volume_0}
+
+ cif_volume_id_1:
+ description: volume id for second cif
+ value: {get_resource: cif_volume_1}
+
+ oam_volume_id_0:
+ description: volume id for first oam
+ value: {get_resource: oam_volume_0}
+
+ oam_volume_id_1:
+ description: volume id for second oam
+ value: {get_resource: oam_volume_1}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/nested_cscf.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/nested_cscf.yaml
new file mode 100644
index 0000000000..f911be6c11
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/nested_cscf.yaml
@@ -0,0 +1,183 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX
+## Name: "cscf.yaml"
+## Date: 20 Mar 2017
+## Kilo Version
+heat_template_version: 2015-04-30
+
+description: IMS CSCF
+
+parameters:
+
+ vcscf_name_delimeter:
+ type: string
+ description: 'delimeter used in concatenating different words while naming (ex: "-","_",".",...)'
+ constraints:
+ - allowed_values: [ '-', '', '_', '.']
+
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+
+ vf_module_name:
+ type: string
+ description: Unique name for this VF Module instance
+
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+
+ cscf_security_group:
+ type: string
+ description: security group
+
+ cscf_flavor_name:
+ type: string
+ description: flavor name
+
+ cscf_image_name:
+ type: string
+ description: image name
+
+ internal_net_id:
+ type: string
+ description: internal network name/uuid
+
+ vcscf_internal_netmask:
+ type: string
+ description: internal netmask
+
+ vcscf_release:
+ type: string
+ description: "IMS release"
+
+ vcscf_dn:
+ type: string
+ description: "DN name"
+
+ vcscf_du:
+ type: string
+ description: "DU name"
+
+ vcscf_cmrepo_address:
+ type: string
+ description: "CMRepo IP or FQDN"
+
+ vcscf_swrepo_address:
+ type: string
+ description: SWRepo IP or FQDN
+
+ vcscf_dns_address:
+ type: string
+ description: DNS server IP
+
+ vcscf_internal_network_mtu:
+ type: number
+ description: MTU for internal network interface (eth0)
+ constraints:
+ - range: { min: 1000, max: 9100 }
+
+ vcscf_gateway:
+ type: string
+ description: OAM unit cipa ip
+
+ cscf_internal_ips:
+ type: comma_delimited_list
+ description: "List of Internal Lan IPs for CSCF instances"
+
+ cscf_internal_v6_ips:
+ type: comma_delimited_list
+ description: "List of Internal Lan v6 IPs for CSCF instances"
+
+ cscf_names:
+ type: comma_delimited_list
+ description: "List of instance names for CSCF instances"
+
+ cscf_uuids:
+ type: comma_delimited_list
+ description: "List of UUIDs generated by cmrepo for CSCF instances"
+
+ availability_zone_0:
+ type: string
+ description: Availability zone name for CSCF instances.
+
+ index:
+ type: number
+ description: index
+ constraints:
+ - range: { min: 0, max: 119 }
+
+resources:
+
+ cscf_internal_0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX: { get_param: [ cscf_names, { get_param: index } ] }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: internal_net_id }
+ security_groups:
+ - { get_param: cscf_security_group }
+ fixed_ips:
+ - ip_address: { get_param: [ cscf_internal_ips, { get_param: index } ] }
+ - ip_address: { get_param: [ cscf_internal_v6_ips, { get_param: index } ] }
+
+ cscf_server_0:
+ type: OS::Nova::Server
+ properties:
+ availability_zone: { get_param: availability_zone_0 }
+ name: { get_param: [ cscf_names, { get_param: index } ] }
+ flavor: { get_param: cscf_flavor_name }
+ image: { get_param: cscf_image_name }
+ metadata:
+ vnf_id: {get_param: vnf_id}
+ vm_role: cscf
+ vnf_name: {get_param: vnf_name}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ networks:
+ - port: { get_resource: cscf_internal_0_port_0 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ DN=$dn_name
+ DUName=$du_name
+ Uuid=$uuid
+ SwRepoIp=$swrepo_ip
+ CmRepoIp=$cmrepo_ip
+ OamDnsIp=$dns_ip
+ eth0_MTU=$mtu
+ UniqueId=$dn_name/$du_name/$release/$uuid
+ OAMUnitInternalIp=$oam_unit_ip
+ NodeIp=$node_ip
+ Netmask=$netmask
+ Gateway=$oam_unit_ip
+ NodeType=CSCF
+ DUType=CSCF
+ Release=$release
+ SwRepoPort=5571
+ CmRepoPort=8051
+ LbGroupId=1
+ NodeName=$instance_name
+ params:
+ $dn_name: { get_param: vcscf_dn }
+ $du_name: { get_param: vcscf_du }
+ $uuid: { get_param: [ cscf_uuids, { get_param: index } ] }
+ $dns_ip: { get_param: vcscf_dns_address }
+ $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+ $swrepo_ip: { get_param: vcscf_swrepo_address }
+ $oam_unit_ip: { get_param: vcscf_gateway }
+ $netmask: { get_param: vcscf_internal_netmask }
+ $release: { get_param: vcscf_release }
+ $mtu: { get_param: vcscf_internal_network_mtu }
+ $node_ip: { get_param: [ cscf_internal_ips, { get_param: index } ] }
+ $instance_name: { get_param: [ cscf_names, { get_param: index } ] }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/nested_tdcore.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/nested_tdcore.yaml
new file mode 100644
index 0000000000..2baec50a38
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/in/nested_tdcore.yaml
@@ -0,0 +1,213 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX
+## Name: "tdcore.yaml"
+## Date: 20 Mar 2017
+## Kilo Version
+heat_template_version: 2015-04-30
+
+description: IMS TDCORE VM
+
+parameters:
+
+ vcscf_name_delimeter:
+ type: string
+ description: 'delimeter used in concatenating different words while naming (ex: "-","_",".",...)'
+ constraints:
+ - allowed_values: [ '-', '', '_', '.']
+
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+
+ vf_module_name:
+ type: string
+ description: Unique name for this VF Module instance
+
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+
+ tdcore_security_group:
+ type: string
+ description: security group
+
+ tdcore_flavor_name:
+ type: string
+ description: flavor name
+
+ tdcore_image_name:
+ type: string
+ description: image name
+
+ internal_net_id:
+ type: string
+ description: internal network name/uuid
+
+ internal_dpdk_net_id:
+ type: string
+ description: internal dpdk network name/uuid
+
+ vcscf_internal_netmask:
+ type: string
+ description: internal netmask
+
+ vcscf_release:
+ type: string
+ description: "IMS release"
+
+ vcscf_dn:
+ type: string
+ description: "DN name"
+
+ vcscf_du:
+ type: string
+ description: "DU name"
+
+ vcscf_cmrepo_address:
+ type: string
+ description: "CMRepo IP or FQDN"
+
+ vcscf_swrepo_address:
+ type: string
+ description: SWRepo IP or FQDN
+
+ vcscf_dns_address:
+ type: string
+ description: DNS server IP
+
+ vcscf_internal_network_mtu:
+ type: number
+ description: MTU for internal network interface (eth0)
+ constraints:
+ - range: { min: 1000, max: 9100 }
+
+ vcscf_gateway:
+ type: string
+ description: OAM unit virtual ip
+
+ tdcore_names:
+ type: comma_delimited_list
+ description: "List of instance names for TDCORE instances"
+
+ tdcore_internal_ips:
+ type: comma_delimited_list
+ description: "List of Internal Lan IPs for TDCORE instances"
+
+ tdcore_dpdk_ips:
+ type: comma_delimited_list
+ description: "List of DPDK Lan IPs for TDCORE instances"
+
+ tdcore_uuids:
+ type: comma_delimited_list
+ description: "List of UUIDs generated by cmrepo for TDCORE instances"
+
+ availability_zone_0:
+ type: string
+ description: Availability zone name.
+
+ tdcore_server_group:
+ type: string
+ description: server group name/id
+
+ index:
+ type: number
+ description: index
+ constraints:
+ - range: { min: 0, max: 7 }
+
+resources:
+
+ tdcore_internal_0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX: { get_param: [ tdcore_names, { get_param: index } ] }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: internal_net_id }
+ security_groups:
+ - { get_param: tdcore_security_group }
+ fixed_ips:
+ - ip_address: { get_param: [ tdcore_internal_ips, { get_param: index } ] }
+
+ tdcore_dpdk_0_port_1:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX: { get_param: [ tdcore_names, { get_param: index } ] }
+ $DEL: { get_param: vcscf_name_delimeter }
+ network: { get_param: internal_dpdk_net_id }
+ security_groups:
+ - { get_param: tdcore_security_group }
+ fixed_ips:
+ - ip_address: { get_param: [ tdcore_dpdk_ips, { get_param: index } ] }
+ allowed_address_pairs:
+ - ip_address: "0.0.0.0/1"
+ - ip_address: "128.0.0.0/1"
+ - ip_address: "::/1"
+ - ip_address: "8000::/1"
+
+ tdcore_server_0:
+ type: OS::Nova::Server
+ properties:
+ availability_zone: { get_param: availability_zone_0 }
+ scheduler_hints: { group: { get_param: tdcore_server_group } }
+ name: { get_param: [ tdcore_names, { get_param: index } ] }
+ flavor: { get_param: tdcore_flavor_name }
+ image: { get_param: tdcore_image_name }
+ metadata:
+ vnf_id: {get_param: vnf_id}
+ vm_role: tdcore
+ vnf_name: {get_param: vnf_name}
+ vf_module_id: {get_param: vf_module_id}
+ vf_module_name: {get_param: vf_module_name}
+ networks:
+ - port: { get_resource: tdcore_internal_0_port_0 }
+ - port: { get_resource: tdcore_dpdk_0_port_1 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ DN=$dn_name
+ DUName=$du_name
+ Uuid=$uuid
+ SwRepoIp=$swrepo_ip
+ CmRepoIp=$cmrepo_ip
+ OamDnsIp=$dns_ip
+ eth0_MTU=$mtu
+ eth1_MTU=$mtu
+ UniqueId=$dn_name/$du_name/$release/$uuid
+ OAMUnitInternalIp=$oam_unit_ip
+ NodeIp=$node_ip
+ Netmask=$netmask
+ Gateway=$oam_unit_ip
+ NodeType=TD_Core
+ DUType=CSCF
+ Release=$release
+ SwRepoPort=5571
+ CmRepoPort=8051
+ LbGroupId=1
+ NodeName=$instance_name
+ params:
+ $dn_name: { get_param: vcscf_dn }
+ $du_name: { get_param: vcscf_du }
+ $uuid: { get_param: [ tdcore_uuids, { get_param: index } ] }
+ $dns_ip: { get_param: vcscf_dns_address }
+ $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+ $swrepo_ip: { get_param: vcscf_swrepo_address }
+ $oam_unit_ip: { get_param: vcscf_gateway }
+ $netmask: { get_param: vcscf_internal_netmask }
+ $release: { get_param: vcscf_release }
+ $mtu: { get_param: vcscf_internal_network_mtu }
+ $node_ip: { get_param: [ tdcore_internal_ips, { get_param: index } ] }
+ $instance_name: { get_param: [ tdcore_names, { get_param: index } ] }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..e92abe8fd5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,6627 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+node_types:
+ org.openecomp.resource.abstract.nodes.jsa:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ compute_jsa_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ requirements:
+ - dependency_jsa:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_jsa:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ instance_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_jsa:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_jsa:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_jsa:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_jsa:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_jsa:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_jsa:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_jsa:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.cmaui:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ cmaui_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_8_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_8_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_7_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_8_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_7_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_8_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_8_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_7_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_7_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_7_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_7_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_7_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_7_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_8_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ cmaui_oam_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_8_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_8_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_port_7:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_7:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_8:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_8:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_cmaui:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ cpu.delta_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_7:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_8:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_8:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_7:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_8:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_7:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_7:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_8:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_7:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_8:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_7:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_8:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_7:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_cmaui:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_7:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_8:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_7:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_8:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_8:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.allocation_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_7:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_8:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_7:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_8:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.cmaui:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_cmaui_port_6_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_6_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_5_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_5_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_6_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_cmaui_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_6_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_6_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_6_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_5_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_5_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_6_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_5_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_6_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_5_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_5_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_6_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_5_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_cmaui_port_5_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_5_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_6_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_5_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_6_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_5_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_6_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ requirements:
+ - dependency_cmaui_cmaui_port_5:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_cmaui_port_5:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_cmaui_port_6:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_cmaui_port_6:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.read.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_cmaui_port_5:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_cmaui_port_6:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ feature_cmaui_cmaui_port_6:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_cmaui_port_5:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu.delta_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_cmaui_port_6:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_cmaui_port_5:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.cmaui:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_cmaui_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_1_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_cmaui_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_2_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_1_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_2_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_1_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_2_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_2_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_2_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ org.openecomp.resource.abstract.nodes.cmaui_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_cmaui_port_3_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_3_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_3_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_cmaui_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_4_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_4_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_4_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_3_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_3_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_3_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_4_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_4_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_3_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_4_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_3_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_3_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_4_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_4_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_3_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_4_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_4_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_3_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_4_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_3_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_cmaui_port_4_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_cmaui_port_4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_cmaui_port_4:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_cmaui_port_3:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_cmaui_port_3:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.read.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_cmaui_port_3:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ feature_cmaui_cmaui_port_3:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_cmaui_port_4:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_cmaui_port_4:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu.delta_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_cmaui_port_3:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_cmaui_port_4:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ cmaui_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ cmaui_oam_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_cmaui:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_3_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_3_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_4_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_4_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_test_nested4Level_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_5_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_5_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_6_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_6_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_cmaui_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_cmaui_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ os_server_cmaui_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_6_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_6_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.ephemeral.size_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_cmaui_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_5_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_3_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.root.size_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_6_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_4_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_3_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_6_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_5_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ os_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_4_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_5_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_6_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_cmaui:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_cmaui_port_2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_server_cmaui_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_5_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_5_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_4_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_5_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_4_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_3_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_5_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_3_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_5_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_3_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_4_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_5_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_6_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_3_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_6_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_4_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_4_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_4_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_5_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_4_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_cmaui_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_3_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_3_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_6_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_4_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_6_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_5_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_4_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_3_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.write.requests_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_6_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_cmaui_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_6_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_3_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_3_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui_test_nested3Level_test_nested2Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.cmaui_2:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_cmaui_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_1_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_cmaui_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_2_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_1_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_2_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_1_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_2_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_2_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_2_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_2_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_cmaui_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_cmaui_cmaui_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_cmaui_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_cmaui_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_cmaui_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ network.incoming.bytes_cmaui_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_cmaui_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_cmaui_port_2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ scalable_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_cmaui_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.write.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_cmaui_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_cmaui_port_2:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_cmaui_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested2:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ cmaui_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ cmaui_oam_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_port_3:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_3:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_4:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_test_nested4Level_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_7_test_nested4Level_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_7_test_nested4Level_test_nested3Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_8_test_nested4Level_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_8_test_nested4Level_test_nested3Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_cmaui_test_nested4Level_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_test_nested4Level_test_nested3Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_5_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_5_test_nested3Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_6_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_6_test_nested3Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_cmaui_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_test_nested3Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_cmaui:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ cpu.delta_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_7_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_test_nested3Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_8_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_cmaui_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_7_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_5_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_6_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_7_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_6_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_5_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_6_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_8_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_6_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_cmaui:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_3:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_4:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.write.requests_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_test_nested3Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_6_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_8_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_6_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_6_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_8_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_8_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_7_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_3:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_4:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_6_test_nested3Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_6_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_3:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_4:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_5_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_7_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_8_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_7_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.root.size_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_6_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_8_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_5_test_nested3Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_cmaui_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_7_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_test_nested3Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_5_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_8_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_8_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_8_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_7_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_5_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_7_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_6_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_7_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_5_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_5_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_3:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_7_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_8_test_nested4Level_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ scalable_server_cmaui_test_nested3Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_5_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_5_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_cmaui_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_5_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui_test_nested4Level_test_nested3Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested3:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ cmaui_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ required: true
+ status: SUPPORTED
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ indx:
+ type: float
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ cmaui_oam_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_test_nested4Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_7_test_nested4Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_7_test_nested4Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_8_test_nested4Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_8_test_nested4Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_cmaui_test_nested4Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_test_nested4Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_5:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_5:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_6:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_6:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_cmaui:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ cpu.delta_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_7_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_8_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_test_nested4Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_7_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_7_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui_test_nested4Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_8_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_cmaui:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_5:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_8_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_6:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_8_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_cmaui_test_nested4Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_test_nested4Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_8_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_8_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_5:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_6:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_7_test_nested4Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_8_test_nested4Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_6:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_7_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_5:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_8_test_nested4Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_7_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_8_test_nested4Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_8_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_7_test_nested4Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_test_nested4Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_cmaui_port_7_test_nested4Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_server_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_7_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_7_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_test_nested4Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_test_nested4Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_8_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_cmaui_port_6:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_cmaui_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_port_5:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_7_test_nested4Level:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.jsa:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_jsa_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..e89a0c772d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/myTest/out/MainServiceTemplate.yaml
@@ -0,0 +1,3172 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ cif_internal_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal IP of CIF01 instance
+ default: 192.168.210.1
+ vcscf_release:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS release
+ default: '17.0'
+ cif_name_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: CIF02 instance name
+ cif_name_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: CIF01 instance name
+ cif_internal_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal IP of CIF02 instance
+ default: 192.168.210.2
+ tdcore_zone_0_count:
+ hidden: false
+ immutable: false
+ type: float
+ description: |
+ Number of TD Core VMs to be deployed zone 0. This parameter is used to scale the TD Core instances.
+ default: 4
+ constraints:
+ - in_range:
+ - 0
+ - 8
+ lbd_internal_dpdk_vip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal DPDK CIP IP of LBD
+ default: 192.168.211.181
+ lbd_ims_core_v6_vip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS CORE CIPA v6 IP of LBD
+ cscf_zone_1_count:
+ hidden: false
+ immutable: false
+ type: float
+ description: |
+ Number of CSCF to be deployed on zone 1. This parameter is used to scale the cscf instances.
+ default: 18
+ constraints:
+ - in_range:
+ - 0
+ - 120
+ oam_internal_vip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal CIPA IP of OAM unit
+ default: 192.168.210.3
+ cscf_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSCF server VM image name
+ default: IMS_17_0_OPENSTACK_CSCF_1701400.000
+ cif_internal_vip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal CIPA IP of CIF
+ default: 192.168.210.150
+ cif_ims_core_v6_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS CORE v6 IP of CIF01 instance
+ cif_ims_core_v6_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS CORE v6 IP of CIF02 instance
+ oam_volume_id_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: size of the cinder volume used for oam
+ oam_volume_size_0:
+ hidden: false
+ immutable: false
+ type: float
+ description: Size of Volume for oam VMs
+ default: 300
+ constraints:
+ - in_range:
+ - 1
+ - 300
+ oam_volume_id_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: size of the cinder volume used for oam
+ vcscf_oam_netmask:
+ hidden: false
+ immutable: false
+ type: string
+ description: Netmask for OAM LAN
+ tdcore_zone_1_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of instance names for TDCORE instances on zone 1
+ entry_schema:
+ type: string
+ cif_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSCF CIF VM flavor
+ default: ND.c4r16d38
+ vcscf_dns_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: DNS server IP
+ vcscf_internal_network_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ description: CIDR for for Internal LAN
+ default: 192.168.210.0/24
+ cdi_ims_core_v6_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS CORE LAN v6 IP of CDI02 instance
+ cdi_ims_core_v6_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS CORE LAN v6 IP of CDI01 instance
+ cdi_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: CDI VM flavor
+ default: ND.c4r8d38
+ vcscf_default_gateway:
+ hidden: false
+ immutable: false
+ type: string
+ description: Default gateway for OAM LAN
+ tdcore_zone_0_uuids:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of UUIDs generated by cmrepo for TDCORE instances on zone 0
+ entry_schema:
+ type: string
+ oam_name_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM02 instance name
+ oam_name_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM01 instance name
+ oam_name_2:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM03 instance name
+ cscf_zone_1_uuids:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of UUIDs generated by cmrepo for CSCF instances on zone 1
+ entry_schema:
+ type: string
+ vf_module_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF Module instance
+ oam_oam_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM IP of OAM01 instance
+ cscf_internal_zone_1_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Internal Lan IPs for CSCF instances on zone 1
+ default:
+ - 192.168.210.17
+ - 192.168.210.19
+ - 192.168.210.21
+ - 192.168.210.23
+ - 192.168.210.25
+ - 192.168.210.27
+ - 192.168.210.29
+ - 192.168.210.31
+ - 192.168.210.33
+ - 192.168.210.35
+ - 192.168.210.37
+ - 192.168.210.39
+ - 192.168.210.41
+ - 192.168.210.43
+ - 192.168.210.45
+ - 192.168.210.47
+ - 192.168.210.49
+ - 192.168.210.51
+ entry_schema:
+ type: string
+ cif_ims_li_v6_vip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS LI CIPA v6 IP of CIF
+ oam_oam_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM IP of OAM02 instance
+ oam_oam_ip_2:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM IP of OAM03 instance
+ vnf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique name for this VF instance
+ lbd_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSCF LBD VM flavor
+ default: ND.c4r16d38
+ cscf_zone_0_uuids:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of UUIDs generated by cmrepo for CSCF instances on zone 0
+ entry_schema:
+ type: string
+ vf_module_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique name for this VF Module instance
+ cdi_internal_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal IP of CDI01 instance
+ default: 192.168.210.139
+ cscf_zone_0_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of instance names for CSCF instances on zone 0
+ entry_schema:
+ type: string
+ oam_oam_vip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM CIPA IP of OAM unit
+ vcscf_swrepo_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: SWRepo IP or FQDN
+ cdi_internal_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal IP of CDI02 instance
+ default: 192.168.210.140
+ cdi_name_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: CDI02 instance name
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Storage availability zone for volume of first vm
+ availability_zone_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Storage availability zone for volume of second vm
+ tdcore_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: TDCORE VM image name
+ default: IMS_17_0_OPENSTACK_CSCF_1701400.000
+ tdcore_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: TDCORE VM flavor
+ default: ND.c4r16d38
+ cscf_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSCF server VM flavor
+ default: ND.c8r16d38
+ vcscf_cmrepo_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: CMRepo IP or FQDN
+ cdi_name_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: CDI01 instance name
+ lbd_ims_core_v6_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS CORE v6 IP of LBD01 instance
+ lbd_ims_core_v6_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS CORE v6 IP of LBD02 instance
+ tdcore_internal_zone_1_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Internal Lan IPs for TDCORE instances on zone 1
+ default:
+ - 192.168.210.9
+ - 192.168.210.11
+ - 192.168.210.13
+ - 192.168.210.15
+ entry_schema:
+ type: string
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name/UUID of OAM network
+ cdi_internal_v6_vip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal v6 CIPA IP of CDI
+ default: 2a00:9a00:a000:1190:0:1:1:2b8d
+ tdcore_dpdk_zone_1_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of DPDK Lan IPs for TDCORE instances on zone 1
+ default:
+ - 192.168.211.9
+ - 192.168.211.11
+ - 192.168.211.13
+ - 192.168.211.15
+ entry_schema:
+ type: string
+ oam_internal_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal IP of OAM01 instance
+ default: 192.168.210.136
+ oam_internal_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal IP of OAM01 instance
+ default: 192.168.210.137
+ cscf_zone_0_count:
+ hidden: false
+ immutable: false
+ type: float
+ description: |
+ Number of CSCF to be deployed on zone 0. This parameter is used to scale the cscf instances.
+ default: 19
+ constraints:
+ - in_range:
+ - 0
+ - 120
+ oam_internal_ip_2:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal IP of OAM01 instance
+ default: 192.168.210.138
+ cscf_zone_1_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of instance names for CSCF instances on zone 1
+ entry_schema:
+ type: string
+ tdcore_zone_0_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of instance names for TDCORE instances on zone 0
+ entry_schema:
+ type: string
+ lbd_uuid_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: UUID generated by cmrepo for LBD01
+ lbd_uuid_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UUID generated by cmrepo for LBD02
+ cdi_internal_v6_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal v6 IP of CDI02 instance
+ default: 2a00:9a00:a000:1190:0:1:1:2b8c
+ cdi_internal_v6_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal v6 IP of CDI01 instance
+ default: 2a00:9a00:a000:1190:0:1:1:2b8b
+ cdi_uuid_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UUID generated by cmrepo for CDI02
+ ims_core_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name/UUID of Core network
+ cdi_uuid_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: UUID generated by cmrepo for CDI01
+ vcscf_internal_network_v6_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ description: CIDR for for Internal LAN v6
+ default: 2a00:9a00:a000:1190:0:1:1:2b00/120
+ oam_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM VM image name
+ default: IMS_17_0_OPENSTACK_OAM_1701400.000
+ tdcore_zone_1_uuids:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of UUIDs generated by cmrepo for TDCORE instances on zone 1
+ entry_schema:
+ type: string
+ vcscf_internal_network_mtu:
+ hidden: false
+ immutable: false
+ type: float
+ description: MTU for internal network interface (eth0)
+ default: 1500
+ constraints:
+ - in_range:
+ - 1000
+ - 9100
+ vcscf_internal_dpdk_network_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ description: CIDR for for Internal LAN DPDK
+ default: 192.168.211.0/24
+ tdcore_zone_1_count:
+ hidden: false
+ immutable: false
+ type: float
+ description: |
+ Number of TD Core VMs to be deployed zone 1. This parameter is used to scale the TD Core instances.
+ default: 4
+ constraints:
+ - in_range:
+ - 0
+ - 8
+ cif_volume_size_0:
+ hidden: false
+ immutable: false
+ type: float
+ description: Size of Volume for cif VMs
+ default: 300
+ constraints:
+ - in_range:
+ - 1
+ - 300
+ oam_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM VM flavor
+ default: ND.c4r32d30
+ ims_li_v6_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name/UUID of V6 LI network
+ lbd_internal_dpdk_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal DPDK IP of LBD02 instance
+ default: 192.168.211.2
+ cif_ims_core_v6_vip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS CORE v6 CIPA IP of CIF
+ lbd_internal_dpdk_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal DPDK IP of LBD01 instance
+ default: 192.168.211.1
+ cdi_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: CDI VM image name
+ default: IMS_17_0_OPENSTACK_CSCF_1701400.000
+ oam_uuid_2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UUID generated by cmrepo for OAM03
+ oam_uuid_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UUID generated by cmrepo for OAM02
+ oam_uuid_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: UUID generated by cmrepo for OAM01
+ cif_oam_vip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM CIPA IP of CIF
+ cif_internal_v6_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal IP v6 of CIF02 instance
+ default: 2a00:9a00:a000:1190:0:1:1:2b05
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF instance
+ cscf_internal_zone_0_v6_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Internal Lan v6 IPs for CSCF instances on zone 0
+ default:
+ - 2a00:9a00:a000:1190:0:1:1:2b10
+ - 2a00:9a00:a000:1190:0:1:1:2b12
+ - 2a00:9a00:a000:1190:0:1:1:2b14
+ - 2a00:9a00:a000:1190:0:1:1:2b16
+ - 2a00:9a00:a000:1190:0:1:1:2b18
+ - 2a00:9a00:a000:1190:0:1:1:2b1a
+ - 2a00:9a00:a000:1190:0:1:1:2b1c
+ - 2a00:9a00:a000:1190:0:1:1:2b1e
+ - 2a00:9a00:a000:1190:0:1:1:2b20
+ - 2a00:9a00:a000:1190:0:1:1:2b22
+ - 2a00:9a00:a000:1190:0:1:1:2b24
+ - 2a00:9a00:a000:1190:0:1:1:2b26
+ - 2a00:9a00:a000:1190:0:1:1:2b28
+ - 2a00:9a00:a000:1190:0:1:1:2b2a
+ - 2a00:9a00:a000:1190:0:1:1:2b2c
+ - 2a00:9a00:a000:1190:0:1:1:2b2e
+ - 2a00:9a00:a000:1190:0:1:1:2b30
+ - 2a00:9a00:a000:1190:0:1:1:2b32
+ - 2a00:9a00:a000:1190:0:1:1:2b34
+ entry_schema:
+ type: string
+ cscf_internal_zone_1_v6_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Internal Lan v6 IPs for CSCF instances on zone 1
+ default:
+ - 2a00:9a00:a000:1190:0:1:1:2b11
+ - 2a00:9a00:a000:1190:0:1:1:2b13
+ - 2a00:9a00:a000:1190:0:1:1:2b15
+ - 2a00:9a00:a000:1190:0:1:1:2b17
+ - 2a00:9a00:a000:1190:0:1:1:2b19
+ - 2a00:9a00:a000:1190:0:1:1:2b1b
+ - 2a00:9a00:a000:1190:0:1:1:2b1d
+ - 2a00:9a00:a000:1190:0:1:1:2b1f
+ - 2a00:9a00:a000:1190:0:1:1:2b21
+ - 2a00:9a00:a000:1190:0:1:1:2b23
+ - 2a00:9a00:a000:1190:0:1:1:2b25
+ - 2a00:9a00:a000:1190:0:1:1:2b27
+ - 2a00:9a00:a000:1190:0:1:1:2b29
+ - 2a00:9a00:a000:1190:0:1:1:2b2b
+ - 2a00:9a00:a000:1190:0:1:1:2b2d
+ - 2a00:9a00:a000:1190:0:1:1:2b2f
+ - 2a00:9a00:a000:1190:0:1:1:2b31
+ - 2a00:9a00:a000:1190:0:1:1:2b33
+ entry_schema:
+ type: string
+ cif_internal_v6_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal IP v6 of CIF01 instance
+ default: 2a00:9a00:a000:1190:0:1:1:2b04
+ lbd_internal_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal IP of LBD02 instance
+ default: 192.168.210.5
+ cif_oam_vip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM (LI-X1) v4 CIPA of CIF
+ lbd_internal_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal IP of LBD01 instance
+ default: 192.168.210.4
+ cif_volume_id_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: size of the cinder volume used for cif
+ cif_ims_li_v6_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS LI v6 IP of CIF01 instance
+ cif_volume_id_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: size of the cinder volume used for cif
+ cif_ims_li_v6_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS LI v6 IP of CIF02 instance
+ lbd_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSCF LBD VM image name
+ default: IMS_17_0_OPENSTACK_CSCF_1701400.000
+ tdcore_dpdk_zone_0_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of DPDK Lan IPs for TDCORE instances on zone 0
+ default:
+ - 192.168.211.8
+ - 192.168.211.10
+ - 192.168.211.12
+ - 192.168.211.14
+ entry_schema:
+ type: string
+ cif_uuid_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: UUID generated by cmrepo for CIF01
+ cif_uuid_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UUID generated by cmrepo for CIF02
+ cif_oam_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM IP of CIF01 instance
+ cif_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: CSCF CIF VM image name
+ default: IMS_17_0_OPENSTACK_CSCF_1701400.000
+ vcscf_internal_netmask:
+ hidden: false
+ immutable: false
+ type: string
+ description: Netmask for Internal LAN
+ default: 255.255.255.0
+ vcscf_name_delimeter:
+ hidden: false
+ immutable: false
+ type: string
+ description: 'delimeter used in concatenating different words while naming (ex:
+ "-","_",".",...)'
+ default: _
+ constraints:
+ - valid_values:
+ - '-'
+ - ''
+ - _
+ - .
+ cif_oam_ip_3:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM (LI-X1) v4 IP of CIF02 instance
+ cif_oam_ip_2:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM (LI-X1) v4 IP of CIF01 instance
+ cif_oam_ip_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM IP of CIF02 instance
+ cdi_ims_core_v6_vip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: IMS CORE LAN CIPA v6 IP of CDI
+ vcscf_dn:
+ hidden: false
+ immutable: false
+ type: string
+ description: DN name
+ vcscf_du:
+ hidden: false
+ immutable: false
+ type: string
+ description: DU name
+ cscf_internal_zone_0_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Internal Lan IPs for CSCF instances on zone 0
+ default:
+ - 192.168.210.16
+ - 192.168.210.18
+ - 192.168.210.20
+ - 192.168.210.22
+ - 192.168.210.24
+ - 192.168.210.26
+ - 192.168.210.28
+ - 192.168.210.30
+ - 192.168.210.32
+ - 192.168.210.34
+ - 192.168.210.36
+ - 192.168.210.38
+ - 192.168.210.40
+ - 192.168.210.42
+ - 192.168.210.44
+ - 192.168.210.46
+ - 192.168.210.48
+ - 192.168.210.50
+ - 192.168.210.52
+ entry_schema:
+ type: string
+ tdcore_internal_zone_0_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Internal Lan IPs for TDCORE instances on zone 0
+ default:
+ - 192.168.210.8
+ - 192.168.210.10
+ - 192.168.210.12
+ - 192.168.210.14
+ entry_schema:
+ type: string
+ lbd_name_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: LBD02 instance name
+ lbd_name_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: LBD01 instance name
+ node_templates:
+ cscf_RSG:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+ properties:
+ name:
+ str_replace:
+ template: $VNF$DELsecurity$DELgroup
+ params:
+ $DEL:
+ get_input: vcscf_name_delimeter
+ $VNF:
+ get_input: vnf_name
+ description: Allow all
+ rules:
+ - ethertype: IPv4
+ direction: ingress
+ - ethertype: IPv4
+ direction: egress
+ - ethertype: IPv6
+ direction: ingress
+ - ethertype: IPv6
+ direction: egress
+ requirements:
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: cif_internal_vip_0_port
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: cif_oam_vip_1_port
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: cif_ims_core_v6_vip_2_port
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: cif_oam_vip_3_port
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: cif_ims_li_v6_vip_4_port
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: lbd_internal_dpdk_vip_1_port
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: lbd_ims_core_v6_vip_2_port
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: cdi_internal_v6_vip_0_port
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: cdi_ims_core_v6_vip_1_port
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: oam_internal_vip_0_port
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: tosca.capabilities.Attachment
+ node: oam_oam_vip_1_port
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_oam_oam_internal_0_port
+ node: abstract_oam
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_oam_oam_oam_0_port
+ node: abstract_oam
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_oam_oam_internal_1_port
+ node: abstract_oam_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_oam_oam_oam_1_port
+ node: abstract_oam_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_oam_oam_internal_2_port
+ node: abstract_oam_2
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_oam_oam_oam_2_port
+ node: abstract_oam_2
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cif_cif_internal_0_port
+ node: abstract_cif
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cif_cif_oam_0_port_1
+ node: abstract_cif
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cif_cif_ims_core_0_port
+ node: abstract_cif
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cif_cif_oam_0_port_3
+ node: abstract_cif
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cif_cif_ims_li_0_port
+ node: abstract_cif
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cif_cif_internal_1_port
+ node: abstract_cif_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cif_cif_oam_1_port_1
+ node: abstract_cif_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cif_cif_ims_core_1_port
+ node: abstract_cif_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cif_cif_oam_1_port_3
+ node: abstract_cif_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cif_cif_ims_li_1_port
+ node: abstract_cif_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_lbd_lbd_internal_0_port
+ node: abstract_lbd_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_lbd_lbd_dpdk_0_port
+ node: abstract_lbd_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_lbd_lbd_ims_core_0_port
+ node: abstract_lbd_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_lbd_lbd_internal_1_port
+ node: abstract_lbd
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_lbd_lbd_dpdk_1_port
+ node: abstract_lbd
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_lbd_lbd_ims_core_1_port
+ node: abstract_lbd
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cdi_cdi_internal_0_port
+ node: abstract_cdi
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cdi_cdi_ims_core_0_port
+ node: abstract_cdi
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cdi_cdi_internal_1_port
+ node: abstract_cdi_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cdi_cdi_ims_core_1_port
+ node: abstract_cdi_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_tdcore_internal_0_port_0
+ node: tdcore_zone_0_RRG
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_tdcore_dpdk_0_port_1
+ node: tdcore_zone_0_RRG
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_tdcore_internal_0_port_0
+ node: tdcore_zone_1_RRG
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_tdcore_dpdk_0_port_1
+ node: tdcore_zone_1_RRG
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cscf_internal_0_port_0
+ node: cscf_zone_0_RRG
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cscf_internal_0_port_0
+ node: cscf_zone_1_RRG
+ relationship: org.openecomp.relationships.AttachesTo
+ cdi_internal_v6_vip_0_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ security_groups:
+ - cscf_RSG
+ fixed_ips:
+ - ip_address:
+ get_input: cdi_internal_v6_vip_0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ name:
+ str_replace:
+ template: $NAME$DELcdi$DELinternal$DELvip$DELv6
+ params:
+ $NAME:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ network: cscf_internal_network_0
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ cscf_internal_dpdk_network_0:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ dhcp_enabled: false
+ shared: false
+ admin_state_up: true
+ network_name:
+ str_replace:
+ template: $PREFIX$DELinternal$DELdpdk$DELnetwork
+ params:
+ $PREFIX:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ subnets:
+ cscf_internal_dpdk_subnet_0:
+ enable_dhcp: false
+ name:
+ str_replace:
+ template: $PREFIX$DELinternal$DELdpdk$DELsubnet
+ params:
+ $PREFIX:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ cidr:
+ get_input: vcscf_internal_dpdk_network_cidr
+ cif_ims_core_v6_vip_2_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ security_groups:
+ - cscf_RSG
+ fixed_ips:
+ - ip_address:
+ get_input: cif_ims_core_v6_vip_0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ name:
+ str_replace:
+ template: $NAME$DELcif$DELims$DELcore$DELvip$DELv6
+ params:
+ $NAME:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ network_role_tag: ims_core
+ network:
+ get_input: ims_core_net_id
+ abstract_cdi_1:
+ type: org.openecomp.resource.abstract.nodes.cdi_1
+ directives:
+ - substitutable
+ properties:
+ port_cdi_ims_core_1_port_security_groups:
+ - - cscf_RSG
+ vm_flavor_name:
+ get_input: cdi_flavor_name
+ port_cdi_internal_1_port_security_groups:
+ - - cscf_RSG
+ port_cdi_ims_core_1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: cdi_image_name
+ compute_cdi_scheduler_hints:
+ - group: cdi_server_group_group
+ port_cdi_ims_core_1_port_fixed_ips:
+ - ip_address:
+ get_input: cdi_ims_core_v6_ip_1
+ compute_cdi_name:
+ - get_input: cdi_name_1
+ port_cdi_ims_core_1_port_network_role_tag: ims_core
+ port_cdi_ims_core_1_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX:
+ get_input: cdi_name_1
+ $DEL:
+ get_input: vcscf_name_delimeter
+ compute_cdi_user_data_format:
+ - RAW
+ port_cdi_ims_core_1_port_network:
+ - get_input: ims_core_net_id
+ compute_cdi_availability_zone:
+ - get_input: availability_zone_1
+ port_cdi_internal_1_port_network:
+ - cscf_internal_network_0
+ port_cdi_ims_core_1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_cdi_internal_1_port_allowed_address_pairs:
+ - ip_address: 0.0.0.0/1
+ - ip_address: 128.0.0.0/1
+ - ip_address: ::/1
+ - ip_address: 8000::/1
+ compute_cdi_config_drive:
+ - true
+ port_cdi_internal_1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cdi_ims_core_1_port_allowed_address_pairs:
+ - ip_address:
+ get_input: cdi_ims_core_v6_vip_0
+ port_cdi_internal_1_port_fixed_ips:
+ - ip_address:
+ get_input: cdi_internal_ip_1
+ - ip_address:
+ get_input: cdi_internal_v6_ip_1
+ port_cdi_internal_1_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX:
+ get_input: cdi_name_1
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_cdi_internal_1_port_ip_requirements:
+ - ip_version: 6
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_cdi_metadata:
+ - vf_module_id:
+ get_input: vf_module_id
+ vm_role: cdi
+ vnf_id:
+ get_input: vnf_id
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ service_template_filter:
+ substitute_service_template: Nested_cdi_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: cdi
+ nfc_naming_code: cdi
+ requirements:
+ - link_cdi_cdi_internal_1_port:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_cdi_cdi_internal_1_port:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ cif_internal_vip_0_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ security_groups:
+ - cscf_RSG
+ fixed_ips:
+ - ip_address:
+ get_input: cif_internal_vip_0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ name:
+ str_replace:
+ template: $NAME$DELcif$DELinternal$DELvip
+ params:
+ $NAME:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ network: cscf_internal_network_0
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ cscf_zone_1_RRG:
+ type: org.openecomp.resource.abstract.nodes.heat.cscf
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ internal_net_id: cscf_internal_network_0
+ vcscf_release:
+ get_input: vcscf_release
+ cscf_internal_ips:
+ get_input: cscf_internal_zone_1_ips
+ vcscf_gateway:
+ get_input: oam_internal_vip_0
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ cscf_image_name:
+ get_input: cscf_image_name
+ cscf_names:
+ get_input: cscf_zone_1_names
+ service_template_filter:
+ substitute_service_template: nested_cscfServiceTemplate.yaml
+ count:
+ get_input: cscf_zone_1_count
+ mandatory: false
+ vcscf_swrepo_address:
+ get_input: vcscf_swrepo_address
+ cscf_uuids:
+ get_input: cscf_zone_1_uuids
+ vnf_id:
+ get_input: vnf_id
+ availability_zone_0:
+ get_input: availability_zone_1
+ cscf_internal_v6_ips:
+ get_input: cscf_internal_zone_1_v6_ips
+ cscf_flavor_name:
+ get_input: cscf_flavor_name
+ vcscf_cmrepo_address:
+ get_input: vcscf_cmrepo_address
+ vcscf_dns_address:
+ get_input: vcscf_dns_address
+ vcscf_internal_network_mtu:
+ get_input: vcscf_internal_network_mtu
+ port_cscf_internal_0_port_0_ip_requirements:
+ - ip_version: 6
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vcscf_internal_netmask:
+ get_input: vcscf_internal_netmask
+ vcscf_name_delimeter:
+ get_input: vcscf_name_delimeter
+ port_cscf_internal_0_port_0_network_role_tag: internal
+ vcscf_dn:
+ get_input: vcscf_dn
+ vcscf_du:
+ get_input: vcscf_du
+ port_cscf_internal_0_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ cscf_security_group: cscf_RSG
+ requirements:
+ - link_cscf_internal_0_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ oam_oam_vip_1_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ security_groups:
+ - cscf_RSG
+ fixed_ips:
+ - ip_address:
+ get_input: oam_oam_vip_0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ name:
+ str_replace:
+ template: $NAME$DELoam$DELoam$DELvip
+ params:
+ $NAME:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ network_role_tag: oam
+ network:
+ get_input: oam_net_id
+ tdcore_zone_0_RRG:
+ type: org.openecomp.resource.abstract.nodes.heat.tdcore
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ internal_net_id: cscf_internal_network_0
+ vcscf_release:
+ get_input: vcscf_release
+ tdcore_security_group: cscf_RSG
+ tdcore_names:
+ get_input: tdcore_zone_0_names
+ port_tdcore_dpdk_0_port_1_network_role_tag: internal_dpdk
+ port_tdcore_dpdk_0_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vcscf_gateway:
+ get_input: oam_internal_vip_0
+ vnf_name:
+ get_input: vnf_name
+ internal_dpdk_net_id: cscf_internal_dpdk_network_0
+ vf_module_name:
+ get_input: vf_module_name
+ service_template_filter:
+ substitute_service_template: nested_tdcoreServiceTemplate.yaml
+ count:
+ get_input: tdcore_zone_0_count
+ mandatory: false
+ vcscf_swrepo_address:
+ get_input: vcscf_swrepo_address
+ vnf_id:
+ get_input: vnf_id
+ availability_zone_0:
+ get_input: availability_zone_0
+ port_tdcore_dpdk_0_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ tdcore_flavor_name:
+ get_input: tdcore_flavor_name
+ tdcore_image_name:
+ get_input: tdcore_image_name
+ vcscf_cmrepo_address:
+ get_input: vcscf_cmrepo_address
+ vcscf_dns_address:
+ get_input: vcscf_dns_address
+ vcscf_internal_network_mtu:
+ get_input: vcscf_internal_network_mtu
+ tdcore_server_group: tdcore_zone_0_server_group_group
+ index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vcscf_internal_netmask:
+ get_input: vcscf_internal_netmask
+ port_tdcore_internal_0_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vcscf_name_delimeter:
+ get_input: vcscf_name_delimeter
+ tdcore_internal_ips:
+ get_input: tdcore_internal_zone_0_ips
+ tdcore_dpdk_ips:
+ get_input: tdcore_dpdk_zone_0_ips
+ tdcore_uuids:
+ get_input: tdcore_zone_0_uuids
+ vcscf_dn:
+ get_input: vcscf_dn
+ port_tdcore_internal_0_port_0_network_role_tag: internal
+ port_tdcore_internal_0_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vcscf_du:
+ get_input: vcscf_du
+ requirements:
+ - link_tdcore_internal_0_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - link_tdcore_dpdk_0_port_1:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_dpdk_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_dpdk_network_0
+ relationship: tosca.relationships.DependsOn
+ lbd_ims_core_v6_vip_2_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ security_groups:
+ - cscf_RSG
+ fixed_ips:
+ - ip_address:
+ get_input: lbd_ims_core_v6_vip_0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ name:
+ str_replace:
+ template: $NAME$DELlbd$DELims$DELcore$DELvip$DELv6
+ params:
+ $NAME:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ network_role_tag: ims_core
+ network:
+ get_input: ims_core_net_id
+ cif_oam_vip_1_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ security_groups:
+ - cscf_RSG
+ fixed_ips:
+ - ip_address:
+ get_input: cif_oam_vip_0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ name:
+ str_replace:
+ template: $NAME$DELcif$DELoam$DELvip0
+ params:
+ $NAME:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ network_role_tag: oam
+ network:
+ get_input: oam_net_id
+ oam_volume_0:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_0
+ size: '(get_input : oam_volume_size_0) * 1024'
+ name:
+ str_replace:
+ template: $VNF$DELoam$DELvolume$DEL0
+ params:
+ $DEL:
+ get_input: vcscf_name_delimeter
+ $VNF:
+ get_input: vnf_name
+ abstract_lbd:
+ type: org.openecomp.resource.abstract.nodes.lbd
+ directives:
+ - substitutable
+ properties:
+ port_lbd_ims_core_1_port_allowed_address_pairs:
+ - ip_address:
+ get_input: lbd_ims_core_v6_vip_0
+ compute_lbd_user_data_format:
+ - RAW
+ compute_lbd_config_drive:
+ - true
+ port_lbd_internal_1_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX:
+ get_input: lbd_name_1
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_lbd_dpdk_1_port_allowed_address_pairs:
+ - ip_address: 0.0.0.0/1
+ - ip_address: 128.0.0.0/1
+ - ip_address: ::/1
+ - ip_address: 8000::/1
+ port_lbd_ims_core_1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_lbd_dpdk_1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: lbd_flavor_name
+ port_lbd_ims_core_1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_lbd_availability_zone:
+ - get_input: availability_zone_1
+ port_lbd_internal_1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_lbd_internal_1_port_security_groups:
+ - - cscf_RSG
+ vm_image_name:
+ get_input: lbd_image_name
+ port_lbd_dpdk_1_port_network:
+ - cscf_internal_dpdk_network_0
+ port_lbd_ims_core_1_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth2
+ params:
+ $PREFIX:
+ get_input: lbd_name_1
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_lbd_ims_core_1_port_security_groups:
+ - - cscf_RSG
+ port_lbd_ims_core_1_port_fixed_ips:
+ - ip_address:
+ get_input: lbd_ims_core_v6_ip_1
+ port_lbd_internal_1_port_fixed_ips:
+ - ip_address:
+ get_input: lbd_internal_ip_1
+ port_lbd_ims_core_1_port_network:
+ - get_input: ims_core_net_id
+ compute_lbd_scheduler_hints:
+ - group: lbd_server_group_group
+ port_lbd_dpdk_1_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX:
+ get_input: lbd_name_1
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_lbd_dpdk_1_port_security_groups:
+ - - cscf_RSG
+ port_lbd_dpdk_1_port_fixed_ips:
+ - ip_address:
+ get_input: lbd_internal_dpdk_ip_1
+ port_lbd_internal_1_port_network:
+ - cscf_internal_network_0
+ port_lbd_dpdk_1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_lbd_metadata:
+ - vf_module_id:
+ get_input: vf_module_id
+ vm_role: lbd
+ vnf_id:
+ get_input: vnf_id
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ port_lbd_internal_1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_lbd_name:
+ - get_input: lbd_name_1
+ port_lbd_ims_core_1_port_network_role_tag: ims_core
+ service_template_filter:
+ substitute_service_template: Nested_lbdServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: lbd
+ nfc_naming_code: lbd
+ requirements:
+ - link_lbd_lbd_internal_1_port:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_lbd_lbd_internal_1_port:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ - link_lbd_lbd_dpdk_1_port:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_dpdk_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_lbd_lbd_dpdk_1_port:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_dpdk_network_0
+ relationship: tosca.relationships.DependsOn
+ oam_internal_vip_0_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ security_groups:
+ - cscf_RSG
+ fixed_ips:
+ - ip_address:
+ get_input: oam_internal_vip_0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ name:
+ str_replace:
+ template: $NAME$DELoam$DELinternal$DELvip
+ params:
+ $NAME:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ network: cscf_internal_network_0
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ tdcore_zone_1_RRG:
+ type: org.openecomp.resource.abstract.nodes.heat.tdcore
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ internal_net_id: cscf_internal_network_0
+ vcscf_release:
+ get_input: vcscf_release
+ tdcore_security_group: cscf_RSG
+ tdcore_names:
+ get_input: tdcore_zone_1_names
+ port_tdcore_dpdk_0_port_1_network_role_tag: internal_dpdk
+ port_tdcore_dpdk_0_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vcscf_gateway:
+ get_input: oam_internal_vip_0
+ vnf_name:
+ get_input: vnf_name
+ internal_dpdk_net_id: cscf_internal_dpdk_network_0
+ vf_module_name:
+ get_input: vf_module_name
+ service_template_filter:
+ substitute_service_template: nested_tdcoreServiceTemplate.yaml
+ count:
+ get_input: tdcore_zone_1_count
+ mandatory: false
+ vcscf_swrepo_address:
+ get_input: vcscf_swrepo_address
+ vnf_id:
+ get_input: vnf_id
+ availability_zone_0:
+ get_input: availability_zone_1
+ port_tdcore_dpdk_0_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ tdcore_flavor_name:
+ get_input: tdcore_flavor_name
+ tdcore_image_name:
+ get_input: tdcore_image_name
+ vcscf_cmrepo_address:
+ get_input: vcscf_cmrepo_address
+ vcscf_dns_address:
+ get_input: vcscf_dns_address
+ vcscf_internal_network_mtu:
+ get_input: vcscf_internal_network_mtu
+ tdcore_server_group: tdcore_zone_1_server_group_group
+ index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vcscf_internal_netmask:
+ get_input: vcscf_internal_netmask
+ port_tdcore_internal_0_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vcscf_name_delimeter:
+ get_input: vcscf_name_delimeter
+ tdcore_internal_ips:
+ get_input: tdcore_internal_zone_1_ips
+ tdcore_dpdk_ips:
+ get_input: tdcore_dpdk_zone_1_ips
+ tdcore_uuids:
+ get_input: tdcore_zone_1_uuids
+ vcscf_dn:
+ get_input: vcscf_dn
+ port_tdcore_internal_0_port_0_network_role_tag: internal
+ port_tdcore_internal_0_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vcscf_du:
+ get_input: vcscf_du
+ requirements:
+ - link_tdcore_internal_0_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - link_tdcore_dpdk_0_port_1:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_dpdk_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_dpdk_network_0
+ relationship: tosca.relationships.DependsOn
+ oam_volume_1:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_1
+ size: '(get_input : oam_volume_size_0) * 1024'
+ name:
+ str_replace:
+ template: $VNF$DELoam$DELvolume$DEL1
+ params:
+ $DEL:
+ get_input: vcscf_name_delimeter
+ $VNF:
+ get_input: vnf_name
+ abstract_cdi:
+ type: org.openecomp.resource.abstract.nodes.cdi
+ directives:
+ - substitutable
+ properties:
+ port_cdi_internal_0_port_ip_requirements:
+ - ip_version: 6
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: cdi_flavor_name
+ port_cdi_ims_core_0_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX:
+ get_input: cdi_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_cdi_internal_0_port_allowed_address_pairs:
+ - ip_address: 0.0.0.0/1
+ - ip_address: 128.0.0.0/1
+ - ip_address: ::/1
+ - ip_address: 8000::/1
+ vm_image_name:
+ get_input: cdi_image_name
+ compute_cdi_scheduler_hints:
+ - group: cdi_server_group_group
+ compute_cdi_name:
+ - get_input: cdi_name_0
+ port_cdi_ims_core_0_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_cdi_ims_core_0_port_network_role_tag: ims_core
+ compute_cdi_user_data_format:
+ - RAW
+ port_cdi_internal_0_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX:
+ get_input: cdi_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ compute_cdi_availability_zone:
+ - get_input: availability_zone_0
+ port_cdi_ims_core_0_port_network:
+ - get_input: ims_core_net_id
+ port_cdi_internal_0_port_network:
+ - cscf_internal_network_0
+ port_cdi_internal_0_port_fixed_ips:
+ - ip_address:
+ get_input: cdi_internal_ip_0
+ - ip_address:
+ get_input: cdi_internal_v6_ip_0
+ compute_cdi_config_drive:
+ - true
+ port_cdi_internal_0_port_security_groups:
+ - - cscf_RSG
+ port_cdi_ims_core_0_port_security_groups:
+ - - cscf_RSG
+ port_cdi_ims_core_0_port_fixed_ips:
+ - ip_address:
+ get_input: cdi_ims_core_v6_ip_0
+ port_cdi_internal_0_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cdi_ims_core_0_port_allowed_address_pairs:
+ - ip_address:
+ get_input: cdi_ims_core_v6_vip_0
+ compute_cdi_metadata:
+ - vf_module_id:
+ get_input: vf_module_id
+ vm_role: cdi
+ vnf_id:
+ get_input: vnf_id
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ port_cdi_ims_core_0_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_cdiServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: cdi
+ nfc_naming_code: cdi
+ requirements:
+ - link_cdi_cdi_internal_0_port:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_cdi_cdi_internal_0_port:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ cif_volume_0:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_0
+ size: '(get_input : cif_volume_size_0) * 1024'
+ name:
+ str_replace:
+ template: $VNF$DELcif$DELvolume$DEL0
+ params:
+ $DEL:
+ get_input: vcscf_name_delimeter
+ $VNF:
+ get_input: vnf_name
+ cif_volume_1:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_1
+ size: '(get_input : cif_volume_size_0) * 1024'
+ name:
+ str_replace:
+ template: $VNF$DELcif$DELvolume$DEL1
+ params:
+ $DEL:
+ get_input: vcscf_name_delimeter
+ $VNF:
+ get_input: vnf_name
+ abstract_oam_1:
+ type: org.openecomp.resource.abstract.nodes.oam_1
+ directives:
+ - substitutable
+ properties:
+ port_oam_internal_1_port_security_groups:
+ - - cscf_RSG
+ port_oam_oam_1_port_allowed_address_pairs:
+ - ip_address:
+ get_input: oam_oam_vip_0
+ vm_flavor_name:
+ get_input: oam_flavor_name
+ port_oam_oam_1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_oam_oam_1_port_network_role_tag: oam
+ port_oam_oam_1_port_security_groups:
+ - - cscf_RSG
+ vm_image_name:
+ get_input: oam_image_name
+ compute_oam_config_drive:
+ - true
+ port_oam_internal_1_port_network:
+ - cscf_internal_network_0
+ port_oam_oam_1_port_fixed_ips:
+ - ip_address:
+ get_input: oam_oam_ip_1
+ port_oam_internal_1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_oam_oam_1_port_network:
+ - get_input: oam_net_id
+ port_oam_internal_1_port_allowed_address_pairs:
+ - ip_address: 0.0.0.0/1
+ - ip_address: 128.0.0.0/1
+ - ip_address: ::/1
+ - ip_address: 8000::/1
+ compute_oam_user_data_format:
+ - RAW
+ port_oam_internal_1_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX:
+ get_input: oam_name_1
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_oam_internal_1_port_fixed_ips:
+ - ip_address:
+ get_input: oam_internal_ip_1
+ port_oam_oam_1_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX:
+ get_input: oam_name_1
+ $DEL:
+ get_input: vcscf_name_delimeter
+ compute_oam_scheduler_hints:
+ - group: oam_server_group_group
+ compute_oam_availability_zone:
+ - get_input: availability_zone_1
+ compute_oam_metadata:
+ - vf_module_id:
+ get_input: vf_module_id
+ vm_role: oam
+ vnf_id:
+ get_input: vnf_id
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ port_oam_internal_1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_oam_name:
+ - get_input: oam_name_1
+ port_oam_oam_1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_oam_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: oam
+ nfc_naming_code: oam
+ requirements:
+ - link_oam_oam_internal_1_port:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_oam_oam_internal_1_port:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ abstract_oam_2:
+ type: org.openecomp.resource.abstract.nodes.oam_2
+ directives:
+ - substitutable
+ properties:
+ port_oam_oam_2_port_network_role_tag: oam
+ port_oam_oam_2_port_security_groups:
+ - - cscf_RSG
+ port_oam_oam_2_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX:
+ get_input: oam_name_2
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_oam_internal_2_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX:
+ get_input: oam_name_2
+ $DEL:
+ get_input: vcscf_name_delimeter
+ vm_flavor_name:
+ get_input: oam_flavor_name
+ port_oam_internal_2_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: oam_image_name
+ compute_oam_config_drive:
+ - true
+ port_oam_internal_2_port_allowed_address_pairs:
+ - ip_address: 0.0.0.0/1
+ - ip_address: 128.0.0.0/1
+ - ip_address: ::/1
+ - ip_address: 8000::/1
+ port_oam_internal_2_port_network:
+ - cscf_internal_network_0
+ port_oam_internal_2_port_fixed_ips:
+ - ip_address:
+ get_input: oam_internal_ip_2
+ port_oam_oam_2_port_fixed_ips:
+ - ip_address:
+ get_input: oam_oam_ip_2
+ port_oam_oam_2_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_oam_oam_2_port_network:
+ - get_input: oam_net_id
+ compute_oam_user_data_format:
+ - RAW
+ port_oam_internal_2_port_security_groups:
+ - - cscf_RSG
+ port_oam_oam_2_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ compute_oam_scheduler_hints:
+ - group: oam_server_group_group
+ port_oam_internal_2_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_oam_availability_zone:
+ - get_input: availability_zone_0
+ compute_oam_metadata:
+ - vf_module_id:
+ get_input: vf_module_id
+ vm_role: oam
+ vnf_id:
+ get_input: vnf_id
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ port_oam_oam_2_port_allowed_address_pairs:
+ - ip_address:
+ get_input: oam_oam_vip_0
+ compute_oam_name:
+ - get_input: oam_name_2
+ service_template_filter:
+ substitute_service_template: Nested_oam_2ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: oam
+ nfc_naming_code: oam
+ requirements:
+ - link_oam_oam_internal_2_port:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_oam_oam_internal_2_port:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ cif_ims_li_v6_vip_4_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ security_groups:
+ - cscf_RSG
+ fixed_ips:
+ - ip_address:
+ get_input: cif_ims_li_v6_vip_0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ name:
+ str_replace:
+ template: $NAME$DELcif$DELims$DELli$DELvip$DELv6
+ params:
+ $NAME:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ network_role_tag: ims_li_v6
+ network:
+ get_input: ims_li_v6_net_id
+ cscf_internal_network_0:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ dhcp_enabled: false
+ shared: false
+ ip_version: 4
+ admin_state_up: true
+ network_name:
+ str_replace:
+ template: $PREFIX$DELinternal$DELnetwork
+ params:
+ $PREFIX:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ subnets:
+ cscf_internal_subnet_0:
+ enable_dhcp: false
+ ip_version: 4
+ name:
+ str_replace:
+ template: $PREFIX$DELinternal$DELsubnet
+ params:
+ $PREFIX:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ cidr:
+ get_input: vcscf_internal_network_cidr
+ cscf_internal_subnet_v6_0:
+ enable_dhcp: false
+ ip_version: 6
+ name:
+ str_replace:
+ template: $PREFIX$DELinternal$DELsubnetv6
+ params:
+ $PREFIX:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ cidr:
+ get_input: vcscf_internal_network_v6_cidr
+ abstract_oam:
+ type: org.openecomp.resource.abstract.nodes.oam
+ directives:
+ - substitutable
+ properties:
+ port_oam_oam_0_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX:
+ get_input: oam_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_oam_oam_0_port_fixed_ips:
+ - ip_address:
+ get_input: oam_oam_ip_0
+ vm_flavor_name:
+ get_input: oam_flavor_name
+ port_oam_oam_0_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_oam_internal_0_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_oam_internal_0_port_network:
+ - cscf_internal_network_0
+ vm_image_name:
+ get_input: oam_image_name
+ compute_oam_config_drive:
+ - true
+ port_oam_internal_0_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX:
+ get_input: oam_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_oam_oam_0_port_allowed_address_pairs:
+ - ip_address:
+ get_input: oam_oam_vip_0
+ port_oam_internal_0_port_security_groups:
+ - - cscf_RSG
+ port_oam_internal_0_port_fixed_ips:
+ - ip_address:
+ get_input: oam_internal_ip_0
+ port_oam_oam_0_port_network_role_tag: oam
+ compute_oam_user_data_format:
+ - RAW
+ port_oam_oam_0_port_network:
+ - get_input: oam_net_id
+ port_oam_oam_0_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_oam_internal_0_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_oam_scheduler_hints:
+ - group: oam_server_group_group
+ port_oam_internal_0_port_allowed_address_pairs:
+ - ip_address: 0.0.0.0/1
+ - ip_address: 128.0.0.0/1
+ - ip_address: ::/1
+ - ip_address: 8000::/1
+ compute_oam_availability_zone:
+ - get_input: availability_zone_0
+ compute_oam_metadata:
+ - vf_module_id:
+ get_input: vf_module_id
+ vm_role: oam
+ vnf_id:
+ get_input: vnf_id
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ compute_oam_name:
+ - get_input: oam_name_0
+ port_oam_oam_0_port_security_groups:
+ - - cscf_RSG
+ service_template_filter:
+ substitute_service_template: Nested_oamServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: oam
+ nfc_naming_code: oam
+ requirements:
+ - link_oam_oam_internal_0_port:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_oam_oam_internal_0_port:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ abstract_lbd_1:
+ type: org.openecomp.resource.abstract.nodes.lbd_1
+ directives:
+ - substitutable
+ properties:
+ compute_lbd_user_data_format:
+ - RAW
+ compute_lbd_config_drive:
+ - true
+ port_lbd_dpdk_0_port_fixed_ips:
+ - ip_address:
+ get_input: lbd_internal_dpdk_ip_0
+ port_lbd_internal_0_port_security_groups:
+ - - cscf_RSG
+ vm_flavor_name:
+ get_input: lbd_flavor_name
+ port_lbd_dpdk_0_port_security_groups:
+ - - cscf_RSG
+ compute_lbd_availability_zone:
+ - get_input: availability_zone_0
+ port_lbd_dpdk_0_port_allowed_address_pairs:
+ - ip_address: 0.0.0.0/1
+ - ip_address: 128.0.0.0/1
+ - ip_address: ::/1
+ - ip_address: 8000::/1
+ vm_image_name:
+ get_input: lbd_image_name
+ port_lbd_dpdk_0_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX:
+ get_input: lbd_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_lbd_dpdk_0_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_lbd_ims_core_0_port_network:
+ - get_input: ims_core_net_id
+ port_lbd_dpdk_0_port_network:
+ - cscf_internal_dpdk_network_0
+ port_lbd_ims_core_0_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_lbd_ims_core_0_port_allowed_address_pairs:
+ - ip_address:
+ get_input: lbd_ims_core_v6_vip_0
+ port_lbd_internal_0_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX:
+ get_input: lbd_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_lbd_ims_core_0_port_network_role_tag: ims_core
+ compute_lbd_scheduler_hints:
+ - group: lbd_server_group_group
+ port_lbd_internal_0_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_lbd_ims_core_0_port_fixed_ips:
+ - ip_address:
+ get_input: lbd_ims_core_v6_ip_0
+ port_lbd_ims_core_0_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_lbd_internal_0_port_fixed_ips:
+ - ip_address:
+ get_input: lbd_internal_ip_0
+ port_lbd_internal_0_port_network:
+ - cscf_internal_network_0
+ port_lbd_dpdk_0_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_lbd_metadata:
+ - vf_module_id:
+ get_input: vf_module_id
+ vm_role: lbd
+ vnf_id:
+ get_input: vnf_id
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ compute_lbd_name:
+ - get_input: lbd_name_0
+ port_lbd_internal_0_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_lbd_ims_core_0_port_security_groups:
+ - - cscf_RSG
+ port_lbd_ims_core_0_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth2
+ params:
+ $PREFIX:
+ get_input: lbd_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ service_template_filter:
+ substitute_service_template: Nested_lbd_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: lbd
+ nfc_naming_code: lbd
+ requirements:
+ - link_lbd_lbd_internal_0_port:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_lbd_lbd_internal_0_port:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ - link_lbd_lbd_dpdk_0_port:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_dpdk_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_lbd_lbd_dpdk_0_port:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_dpdk_network_0
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ count:
+ get_input: cscf_zone_0_count
+ mandatory: false
+ vcscf_swrepo_address:
+ get_input: vcscf_swrepo_address
+ cscf_uuids:
+ get_input: cscf_zone_0_uuids
+ vnf_id:
+ get_input: vnf_id
+ availability_zone_0:
+ get_input: availability_zone_0
+ cscf_internal_v6_ips:
+ get_input: cscf_internal_zone_0_v6_ips
+ cscf_flavor_name:
+ get_input: cscf_flavor_name
+ vcscf_cmrepo_address:
+ get_input: vcscf_cmrepo_address
+ vcscf_dns_address:
+ get_input: vcscf_dns_address
+ vcscf_internal_network_mtu:
+ get_input: vcscf_internal_network_mtu
+ port_cscf_internal_0_port_0_ip_requirements:
+ - ip_version: 6
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vcscf_internal_netmask:
+ get_input: vcscf_internal_netmask
+ vcscf_name_delimeter:
+ get_input: vcscf_name_delimeter
+ port_cscf_internal_0_port_0_network_role_tag: internal
+ vcscf_dn:
+ get_input: vcscf_dn
+ vcscf_du:
+ get_input: vcscf_du
+ port_cscf_internal_0_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ cscf_security_group: cscf_RSG
+ requirements:
+ - link_cscf_internal_0_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ lbd_internal_dpdk_vip_1_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ security_groups:
+ - cscf_RSG
+ fixed_ips:
+ - ip_address:
+ get_input: lbd_internal_dpdk_vip_0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ name:
+ str_replace:
+ template: $NAME$DELlbd$DELinternal$DELdpdk$DELvip
+ params:
+ $NAME:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ network: cscf_internal_dpdk_network_0
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_dpdk_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_dpdk_network_0
+ relationship: tosca.relationships.DependsOn
+ cif_oam_vip_3_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ security_groups:
+ - cscf_RSG
+ fixed_ips:
+ - ip_address:
+ get_input: cif_oam_vip_1
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ name:
+ str_replace:
+ template: $NAME$DELcif$DELoam$DELvip1
+ params:
+ $NAME:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ network_role_tag: oam
+ network:
+ get_input: oam_net_id
+ cdi_ims_core_v6_vip_1_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ security_groups:
+ - cscf_RSG
+ fixed_ips:
+ - ip_address:
+ get_input: cdi_ims_core_v6_vip_0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ name:
+ str_replace:
+ template: $NAME$DELcdi$DELims$DELdb$DELvip$DELv6
+ params:
+ $NAME:
+ get_input: vnf_name
+ $DEL:
+ get_input: vcscf_name_delimeter
+ network_role_tag: ims_core
+ network:
+ get_input: ims_core_net_id
+ abstract_cif:
+ type: org.openecomp.resource.abstract.nodes.cif
+ directives:
+ - substitutable
+ properties:
+ port_cif_ims_core_0_port_network:
+ - get_input: ims_core_net_id
+ port_cif_oam_0_port_1_name:
+ - str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX:
+ get_input: cif_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_cif_oam_0_port_1_allowed_address_pairs:
+ - ip_address:
+ get_input: cif_oam_vip_0
+ port_cif_oam_0_port_1_fixed_ips:
+ - ip_address:
+ get_input: cif_oam_ip_0
+ vm_flavor_name:
+ get_input: cif_flavor_name
+ port_cif_internal_0_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX:
+ get_input: cif_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ vm_image_name:
+ get_input: cif_image_name
+ compute_cif_user_data_format:
+ - RAW
+ port_cif_oam_0_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_cif_ims_li_0_port_fixed_ips:
+ - ip_address:
+ get_input: cif_ims_li_v6_ip_0
+ compute_cif_scheduler_hints:
+ - group: cif_server_group_group
+ port_cif_oam_0_port_1_security_groups:
+ - - cscf_RSG
+ port_cif_ims_li_0_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ compute_cif_metadata:
+ - vf_module_id:
+ get_input: vf_module_id
+ vm_role: cif
+ vnf_id:
+ get_input: vnf_id
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ port_cif_ims_li_0_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth4
+ params:
+ $PREFIX:
+ get_input: cif_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_cif_ims_core_0_port_fixed_ips:
+ - ip_address:
+ get_input: cif_ims_core_v6_ip_0
+ port_cif_oam_0_port_3_network_role_tag: oam
+ port_cif_ims_core_0_port_security_groups:
+ - - cscf_RSG
+ port_cif_ims_core_0_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth2
+ params:
+ $PREFIX:
+ get_input: cif_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_cif_internal_0_port_network:
+ - cscf_internal_network_0
+ port_cif_oam_0_port_3_security_groups:
+ - - cscf_RSG
+ port_cif_ims_core_0_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_cif_ims_li_0_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cif_oam_0_port_1_network:
+ - get_input: oam_net_id
+ port_cif_ims_li_0_port_security_groups:
+ - - cscf_RSG
+ compute_cif_name:
+ - get_input: cif_name_0
+ compute_cif_availability_zone:
+ - get_input: availability_zone_0
+ port_cif_oam_0_port_1_network_role_tag: oam
+ port_cif_oam_0_port_3_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cif_ims_core_0_port_allowed_address_pairs:
+ - ip_address:
+ get_input: cif_ims_core_v6_vip_0
+ port_cif_oam_0_port_3_fixed_ips:
+ - ip_address:
+ get_input: cif_oam_ip_2
+ port_cif_ims_core_0_port_network_role_tag: ims_core
+ port_cif_ims_li_0_port_allowed_address_pairs:
+ - ip_address:
+ get_input: cif_ims_li_v6_vip_0
+ port_cif_internal_0_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cif_ims_li_0_port_network:
+ - get_input: ims_li_v6_net_id
+ port_cif_internal_0_port_security_groups:
+ - - cscf_RSG
+ port_cif_ims_li_0_port_network_role_tag: ims_li_v6
+ port_cif_oam_0_port_3_allowed_address_pairs:
+ - ip_address:
+ get_input: cif_oam_vip_1
+ port_cif_internal_0_port_fixed_ips:
+ - ip_address:
+ get_input: cif_internal_ip_0
+ - ip_address:
+ get_input: cif_internal_v6_ip_0
+ compute_cif_config_drive:
+ - true
+ port_cif_oam_0_port_3_name:
+ - str_replace:
+ template: $PREFIX$DELeth3
+ params:
+ $PREFIX:
+ get_input: cif_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_cif_oam_0_port_3_network:
+ - get_input: oam_net_id
+ port_cif_ims_core_0_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cif_internal_0_port_allowed_address_pairs:
+ - ip_address:
+ get_input: cif_internal_vip_0
+ port_cif_oam_0_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cif_oam_0_port_3_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_cif_internal_0_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ service_template_filter:
+ substitute_service_template: Nested_cifServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: cif
+ nfc_naming_code: cif
+ requirements:
+ - link_cif_cif_internal_0_port:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_cif_cif_internal_0_port:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ abstract_cif_1:
+ type: org.openecomp.resource.abstract.nodes.cif_1
+ directives:
+ - substitutable
+ properties:
+ port_cif_oam_1_port_1_name:
+ - str_replace:
+ template: $PREFIX$DELeth1
+ params:
+ $PREFIX:
+ get_input: cif_name_1
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_cif_ims_core_1_port_security_groups:
+ - - cscf_RSG
+ port_cif_oam_1_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cif_oam_1_port_3_network:
+ - get_input: oam_net_id
+ vm_flavor_name:
+ get_input: cif_flavor_name
+ vm_image_name:
+ get_input: cif_image_name
+ compute_cif_user_data_format:
+ - RAW
+ port_cif_oam_1_port_3_allowed_address_pairs:
+ - ip_address:
+ get_input: cif_oam_vip_1
+ compute_cif_scheduler_hints:
+ - group: cif_server_group_group
+ port_cif_oam_1_port_3_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_cif_internal_1_port_security_groups:
+ - - cscf_RSG
+ port_cif_oam_1_port_1_network:
+ - get_input: oam_net_id
+ port_cif_ims_core_1_port_network_role_tag: ims_core
+ port_cif_ims_li_1_port_security_groups:
+ - - cscf_RSG
+ port_cif_ims_li_1_port_allowed_address_pairs:
+ - ip_address:
+ get_input: cif_ims_li_v6_vip_0
+ port_cif_internal_1_port_allowed_address_pairs:
+ - ip_address:
+ get_input: cif_internal_vip_0
+ port_cif_oam_1_port_3_security_groups:
+ - - cscf_RSG
+ compute_cif_metadata:
+ - vf_module_id:
+ get_input: vf_module_id
+ vm_role: cif
+ vnf_id:
+ get_input: vnf_id
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ port_cif_oam_1_port_1_fixed_ips:
+ - ip_address:
+ get_input: cif_oam_ip_1
+ port_cif_internal_1_port_network:
+ - cscf_internal_network_0
+ port_cif_ims_core_1_port_network:
+ - get_input: ims_core_net_id
+ port_cif_oam_1_port_3_fixed_ips:
+ - ip_address:
+ get_input: cif_oam_ip_3
+ port_cif_oam_1_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_cif_ims_core_1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_cif_name:
+ - get_input: cif_name_1
+ compute_cif_availability_zone:
+ - get_input: availability_zone_1
+ port_cif_internal_1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_cif_ims_li_1_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth4
+ params:
+ $PREFIX:
+ get_input: cif_name_1
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_cif_internal_1_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth0
+ params:
+ $PREFIX:
+ get_input: cif_name_1
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_cif_ims_li_1_port_fixed_ips:
+ - ip_address:
+ get_input: cif_ims_li_v6_ip_1
+ port_cif_internal_1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cif_ims_li_1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cif_ims_li_1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_cif_ims_core_1_port_fixed_ips:
+ - ip_address:
+ get_input: cif_ims_core_v6_ip_1
+ port_cif_ims_core_1_port_allowed_address_pairs:
+ - ip_address:
+ get_input: cif_ims_core_v6_vip_0
+ port_cif_oam_1_port_1_network_role_tag: oam
+ port_cif_oam_1_port_3_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cif_ims_core_1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: true
+ port_cif_ims_li_1_port_network:
+ - get_input: ims_li_v6_net_id
+ port_cif_internal_1_port_fixed_ips:
+ - ip_address:
+ get_input: cif_internal_ip_1
+ - ip_address:
+ get_input: cif_internal_v6_ip_1
+ port_cif_ims_core_1_port_name:
+ - str_replace:
+ template: $PREFIX$DELeth2
+ params:
+ $PREFIX:
+ get_input: cif_name_1
+ $DEL:
+ get_input: vcscf_name_delimeter
+ compute_cif_config_drive:
+ - true
+ port_cif_oam_1_port_3_name:
+ - str_replace:
+ template: $PREFIX$DELeth3
+ params:
+ $PREFIX:
+ get_input: cif_name_0
+ $DEL:
+ get_input: vcscf_name_delimeter
+ port_cif_ims_li_1_port_network_role_tag: ims_li_v6
+ port_cif_oam_1_port_1_security_groups:
+ - - cscf_RSG
+ port_cif_oam_1_port_1_allowed_address_pairs:
+ - ip_address:
+ get_input: cif_oam_vip_0
+ port_cif_oam_1_port_3_network_role_tag: oam
+ service_template_filter:
+ substitute_service_template: Nested_cif_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vm_type_tag: cif
+ nfc_naming_code: cif
+ requirements:
+ - link_cif_cif_internal_1_port:
+ capability: tosca.capabilities.network.Linkable
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_cif_cif_internal_1_port:
+ capability: tosca.capabilities.Node
+ node: cscf_internal_network_0
+ relationship: tosca.relationships.DependsOn
+ groups:
+ tdcore_zone_0_server_group_group:
+ type: tosca.groups.Root
+ members: [
+ ]
+ tdcore_zone_1_server_group_group:
+ type: tosca.groups.Root
+ members: [
+ ]
+ oam_server_group_group:
+ type: tosca.groups.Root
+ members:
+ - abstract_oam
+ - abstract_oam_1
+ - abstract_oam_2
+ cdi_server_group_group:
+ type: tosca.groups.Root
+ members:
+ - abstract_cdi
+ - abstract_cdi_1
+ cif_server_group_group:
+ type: tosca.groups.Root
+ members:
+ - abstract_cif
+ - abstract_cif_1
+ base_cscf_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/base_cscf.yaml
+ description: |
+ CFX-5000 N+K VNF HOT template for AT&T.
+ members:
+ - cscf_RSG
+ - cdi_internal_v6_vip_0_port
+ - cscf_internal_dpdk_network_0
+ - cif_ims_core_v6_vip_2_port
+ - cif_internal_vip_0_port
+ - cscf_zone_1_RRG
+ - oam_oam_vip_1_port
+ - tdcore_zone_0_RRG
+ - lbd_ims_core_v6_vip_2_port
+ - cif_oam_vip_1_port
+ - oam_internal_vip_0_port
+ - tdcore_zone_1_RRG
+ - cif_ims_li_v6_vip_4_port
+ - cscf_internal_network_0
+ - cscf_zone_0_RRG
+ - lbd_internal_dpdk_vip_1_port
+ - cif_oam_vip_3_port
+ - cdi_ims_core_v6_vip_1_port
+ - abstract_lbd
+ - abstract_lbd_1
+ - abstract_cif
+ - abstract_cif_1
+ - abstract_oam
+ - abstract_oam_1
+ - abstract_oam_2
+ - abstract_cdi
+ - abstract_cdi_1
+ base_cscf_volume_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/base_cscf_volume.yaml
+ description: Volume template for CFX
+ members:
+ - oam_volume_1
+ - oam_volume_0
+ - cif_volume_0
+ - cif_volume_1
+ lbd_server_group_group:
+ type: tosca.groups.Root
+ members:
+ - abstract_lbd
+ - abstract_lbd_1
+ outputs:
+ oam_volume_id_1:
+ description: volume id for second oam
+ value: oam_volume_1
+ oam_volume_id_0:
+ description: volume id for first oam
+ value: oam_volume_0
+ cif_volume_id_0:
+ description: volume id for first cif
+ value: cif_volume_0
+ cif_volume_id_1:
+ description: volume id for second cif
+ value: cif_volume_1
+ policies:
+ oam_server_group_policy:
+ type: org.openecomp.policies.placement.Antilocate
+ properties:
+ name:
+ str_replace:
+ template: $VNF$DELoam$DELgroup
+ params:
+ $DEL:
+ get_input: vcscf_name_delimeter
+ $VNF:
+ get_input: vnf_name
+ container_type: host
+ targets:
+ - oam_server_group_group
+ cdi_server_group_policy:
+ type: org.openecomp.policies.placement.Antilocate
+ properties:
+ name:
+ str_replace:
+ template: $VNF$DELcdi$DELgroup
+ params:
+ $DEL:
+ get_input: vcscf_name_delimeter
+ $VNF:
+ get_input: vnf_name
+ container_type: host
+ targets:
+ - cdi_server_group_group
+ lbd_server_group_policy:
+ type: org.openecomp.policies.placement.Antilocate
+ properties:
+ name:
+ str_replace:
+ template: $VNF$DELlbd$DELgroup
+ params:
+ $DEL:
+ get_input: vcscf_name_delimeter
+ $VNF:
+ get_input: vnf_name
+ container_type: host
+ targets:
+ - lbd_server_group_group
+ tdcore_zone_0_server_group_policy:
+ type: org.openecomp.policies.placement.Antilocate
+ properties:
+ name:
+ str_replace:
+ template: $VNF$DELtdcore$DELzone0$DELgroup
+ params:
+ $DEL:
+ get_input: vcscf_name_delimeter
+ $VNF:
+ get_input: vnf_name
+ container_type: host
+ targets:
+ - tdcore_zone_0_server_group_group
+ cif_server_group_policy:
+ type: org.openecomp.policies.placement.Antilocate
+ properties:
+ name:
+ str_replace:
+ template: $VNF$DELcif$DELgroup
+ params:
+ $DEL:
+ get_input: vcscf_name_delimeter
+ $VNF:
+ get_input: vnf_name
+ container_type: host
+ targets:
+ - cif_server_group_group
+ tdcore_zone_1_server_group_policy:
+ type: org.openecomp.policies.placement.Antilocate
+ properties:
+ name:
+ str_replace:
+ template: $VNF$DELtdcore$DELzone1$DELgroup
+ params:
+ $DEL:
+ get_input: vcscf_name_delimeter
+ $VNF:
+ get_input: vnf_name
+ container_type: host
+ targets:
+ - tdcore_zone_1_server_group_group
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested3ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested3ServiceTemplate.yaml
index f312efdeb2..e7f660fe28 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested3ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested3ServiceTemplate.yaml
@@ -89,6 +89,29 @@ topology_template:
is_required: true
floating_ip_count_required:
is_required: false
+ requirements:
+ - dependency_cmaui_port_7:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_cmaui_port_7:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_cmaui_port_8:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_cmaui_port_8:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_cmaui:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
abstract_cmaui:
type: org.openecomp.resource.abstract.nodes.cmaui
directives:
@@ -584,4 +607,4 @@ topology_template:
- link_cmaui_port_7
dependency_cmaui_port_5:
- abstract_cmaui
- - dependency_cmaui_cmaui_port_5
+ - dependency_cmaui_cmaui_port_5 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index c73d702699..10d7c21256 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -1138,6 +1138,580 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ metadata:
+ type: string
+ description: metadata
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ required: true
+ status: SUPPORTED
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: the name of security group
+ required: true
+ status: SUPPORTED
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ required: true
+ status: SUPPORTED
+ key_name:
+ type: string
+ description: key_name
+ required: true
+ status: SUPPORTED
+ user_data_format:
+ type: string
+ description: user_data_format
+ required: true
+ status: SUPPORTED
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ status: SUPPORTED
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ network.incoming.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pcm_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pcm:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -2017,3 +2591,609 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.oam_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ oam_server_name:
+ type: string
+ description: oam server name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_image_name:
+ type: string
+ description: oam image name
+ required: true
+ status: SUPPORTED
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ oam_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: the name of security group
+ required: true
+ status: SUPPORTED
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ server_oam_id:
+ type: string
+ description: the oam nova service id
+ status: SUPPORTED
+ requirements:
+ - dependency_server_oam:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_oam:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ cpu_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pcm_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.read.bytes_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_oam:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_oam:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_oam:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_oam:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_oam:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_oam:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_oam:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.compute:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_compute_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_compute_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_compute_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_compute_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ attributes:
+ compute_instance_name:
+ type: string
+ status: SUPPORTED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/MainServiceTemplate.yaml
index e44327fa33..b1f6c7e875 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/MainServiceTemplate.yaml
@@ -105,6 +105,11 @@ topology_template:
type: string
description: PCRF CM image name
default: rhel2
+ shared_security_group_id2:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
oam_server_names:
label: PCRF CM server names
hidden: false
@@ -136,6 +141,11 @@ topology_template:
type: string
description: CPS network mask
default: 255.255.255.0
+ shared_security_group_id1:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
oam_net_name:
label: OAM network name
hidden: false
@@ -151,8 +161,10 @@ topology_template:
properties:
pcm_flavor_name:
get_input: pcm_flavor_name
+ p1: jsa_security_group1
service_template_filter:
substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ p2: jsa_security_group2
port_pcm_port_1_network_role_tag: oam
port_pcm_port_0_ip_requirements:
- ip_version: 4
@@ -179,53 +191,68 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
server_oam_001:
type: org.openecomp.resource.abstract.nodes.heat.oam_server
directives:
- substitutable
properties:
- port_pcm_port_1_network_role_tag: oam
availabilityzone_name:
get_input: availabilityzone_name
- port_pcm_port_0_ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
oam_net_gw:
get_input: oam_net_gw
+ port_oam_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
oam_flavor_name:
get_input: oam_flavor_name
- security_group_name:
- get_input: security_group_name
cps_net_ip:
get_input:
- cps_net_ips
- 0
+ port_oam_port_1_network_role_tag: oam
oam_server_name:
get_input:
- oam_server_names
- 0
- port_pcm_port_1_mac_requirements:
- mac_count_required:
- is_required: false
service_template_filter:
substitute_service_template: nested-oam_v0.1ServiceTemplate.yaml
- pcm_vol:
- get_input:
- - pcm_volumes
- - 0
- port_pcm_port_1_ip_requirements:
+ port_oam_port_1_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- port_pcm_port_0_network_role_tag: cps
- port_pcm_port_0_mac_requirements:
+ port_oam_port_1_mac_requirements:
mac_count_required:
is_required: false
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ port_oam_port_0_network_role_tag: cps
oam_image_name:
get_input: oam_image_name
cps_net_name:
@@ -238,17 +265,42 @@ topology_template:
- 0
oam_net_mask:
get_input: oam_net_mask
+ port_oam_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
oam_net_name:
get_input: oam_net_name
+ requirements:
+ - dependency_oam_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_oam_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_oam:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_oam:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_oam_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_oam_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
server_pcm_001:
type: org.openecomp.resource.abstract.nodes.heat.pcm_server
directives:
- substitutable
properties:
- metadata:
- get_attribute:
- - compute_port_0
- - device_id
port_pcm_port_1_network_role_tag: oam
availabilityzone_name:
get_input: availabilityzone_name
@@ -273,16 +325,8 @@ topology_template:
is_required: false
pcm_flavor_name:
get_input: pcm_flavor_name
- key_name:
- get_attribute:
- - server_oam_001
- - accessIPv4
service_template_filter:
substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
- user_data_format:
- get_attribute:
- - server_pcm_002
- - oam_net_gw
pcm_vol:
get_input:
- pcm_volumes
@@ -313,17 +357,43 @@ topology_template:
get_input: oam_net_mask
oam_net_name:
get_input: oam_net_name
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
packet_mirror_network:
type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
properties:
- tenant_id:
- get_attribute:
- - abstract_compute
- - compute_instance_name
network_name:
- get_attribute:
- - server_pcm_001
- - instance_name
+ get_input: net_name
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: server_pcm_001
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: feature_compute
+ node: abstract_compute
+ relationship: tosca.relationships.DependsOn
compute_port_0:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
@@ -338,6 +408,104 @@ topology_template:
is_required: false
network:
get_input: net_name
+ jsa_security_group1:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+ properties:
+ name: jsa_security_group1_name
+ description: ems security group
+ rules:
+ - protocol: icmp
+ ethertype: IPv6
+ remote_ip_prefix: ::/0
+ direction: ingress
+ requirements:
+ - port:
+ capability: attachment_pcm_port_0
+ node: server_pcm_002
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_pcm_port_1
+ node: server_pcm_002
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_oam_port_1
+ node: test_shared_node_connected_in_nested
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_oam_port_0
+ node: test_shared_node_connected_in_nested
+ relationship: org.openecomp.relationships.AttachesTo
+ jsa_security_group2:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+ properties:
+ name: jsa_security_group2_name
+ description: ems security group
+ rules:
+ - protocol: tcp
+ ethertype: IPv4
+ port_range_max: 65535
+ remote_ip_prefix: 0.0.0.0/0
+ direction: egress
+ port_range_min: 1
+ requirements:
+ - port:
+ capability: attachment_pcm_port_0
+ node: server_pcm_002
+ relationship: org.openecomp.relationships.AttachesTo
+ test_shared_node_connected_in_nested:
+ type: org.openecomp.resource.abstract.nodes.heat.oam_server
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-oam_v0.1ServiceTemplate.yaml
+ p2:
+ get_input: shared_security_group_id2
+ port_oam_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_oam_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_oam_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_oam_port_0_network_role_tag: cps
+ port_oam_port_1_network_role_tag: oam
+ port_oam_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ shared_security_group_id1:
+ get_input: shared_security_group_id1
+ requirements:
+ - dependency_oam_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_oam_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_oam:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_oam:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_oam_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_oam_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
abstract_compute:
type: org.openecomp.resource.abstract.nodes.compute
directives:
@@ -351,8 +519,8 @@ topology_template:
get_input: compute_image_name
compute_compute_metadata:
- get_attribute:
- - compute_port_0
- - device_id
+ - server_pcm_001
+ - server_pcm_id
compute_compute_name:
- compute_name: null
vm_flavor_name:
@@ -395,4 +563,14 @@ topology_template:
- server_pcm_001
- packet_mirror_network
- compute_port_0
- - abstract_compute \ No newline at end of file
+ - jsa_security_group1
+ - jsa_security_group2
+ - abstract_compute
+ addOn_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/addOn.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_shared_node_connected_in_nested \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/MainServiceTemplate.yaml
index e49afcd726..1ce813d1b6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/MainServiceTemplate.yaml
@@ -181,6 +181,29 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
server_oam_001:
type: org.openecomp.resource.abstract.nodes.heat.oam_server
directives:
@@ -242,6 +265,29 @@ topology_template:
get_input: oam_net_mask
oam_net_name:
get_input: oam_net_name
+ requirements:
+ - dependency_server_oam:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_oam:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
server_pcm_001:
type: org.openecomp.resource.abstract.nodes.heat.pcm_server
directives:
@@ -303,6 +349,29 @@ topology_template:
get_input: oam_net_mask
oam_net_name:
get_input: oam_net_name
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
packet_mirror_network:
type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
properties:
@@ -408,4 +477,4 @@ topology_template:
value:
get_attribute:
- server_pcm_002
- - server_pcm_id
+ - server_pcm_id \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneCompute/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneCompute/out/MainServiceTemplate.yaml
index 0f63982943..17fb056d3a 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneCompute/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneCompute/out/MainServiceTemplate.yaml
@@ -181,6 +181,29 @@ topology_template:
get_input: oam_net_mask
oam_net_name:
get_input: oam_net_name
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
packet_mirror_network:
type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneComputeDiffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneComputeDiffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 060e2ed852..ba0cec7fc0 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneComputeDiffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneComputeDiffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -564,6 +564,565 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_1port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ port_pcm_1port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ required: true
+ status: SUPPORTED
+ port_pcm_1port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_1port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_2port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_2port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_1port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_1port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ required: true
+ status: SUPPORTED
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ port_pcm_1port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_2port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ port_pcm_1port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_2port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: the name of security group
+ required: true
+ status: SUPPORTED
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_2port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ required: true
+ status: SUPPORTED
+ port_pcm_2port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_2port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_2port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ status: SUPPORTED
+ requirements:
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_1port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_1port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pcm_2port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_2port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ binding_pcm_2port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_2port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_2port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_2port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_1port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pcm_2port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_2port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_2port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_2port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_1port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_1port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_1port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_1port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pcm_1port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_2port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_1port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_2port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_1port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_2port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_1port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pcm_1port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu.delta_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_1port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pcm:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
org.openecomp.resource.abstract.nodes.compute:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -865,3 +1424,46 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.compute:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_compute_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_compute_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_compute_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_compute_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneComputeDiffPortType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneComputeDiffPortType/out/MainServiceTemplate.yaml
index 6bfb11cba1..90babddc3e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneComputeDiffPortType/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneComputeDiffPortType/out/MainServiceTemplate.yaml
@@ -181,6 +181,29 @@ topology_template:
get_input: oam_net_mask
oam_net_name:
get_input: oam_net_name
+ requirements:
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_1port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_1port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_pcm_2port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_2port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
packet_mirror_network:
type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedPointingToThreeDiffNestedFilesSameComputeType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedPointingToThreeDiffNestedFilesSameComputeType/out/MainServiceTemplate.yaml
index 976be29e67..6736c9caa3 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedPointingToThreeDiffNestedFilesSameComputeType/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedPointingToThreeDiffNestedFilesSameComputeType/out/MainServiceTemplate.yaml
@@ -91,6 +91,29 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
server_pcm_001:
type: org.openecomp.resource.abstract.nodes.heat.pcm_server_1
directives:
@@ -128,6 +151,29 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
server_pcm_003:
type: org.openecomp.resource.abstract.nodes.heat.pcm_server_2
directives:
@@ -165,6 +211,29 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
compute_port_0:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
@@ -189,4 +258,4 @@ topology_template:
- server_pcm_002
- server_pcm_001
- server_pcm_003
- - compute_port_0
+ - compute_port_0 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/MainServiceTemplate.yaml
index 2a5f3b77f9..2e0c569781 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/MainServiceTemplate.yaml
@@ -91,6 +91,29 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
server_pcm_001:
type: org.openecomp.resource.abstract.nodes.heat.pcm_server
directives:
@@ -128,6 +151,29 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
server_pcm_003:
type: org.openecomp.resource.abstract.nodes.heat.pcm_server_2
directives:
@@ -165,6 +211,29 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
compute_port_0:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 92ea0fa5e7..ae6167dd3e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -564,6 +564,565 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ required: true
+ status: SUPPORTED
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: the name of security group
+ required: true
+ status: SUPPORTED
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ required: true
+ status: SUPPORTED
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ status: SUPPORTED
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ network.incoming.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pcm_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pcm:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1418,3 +1977,40 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.compute:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_compute_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_compute_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_compute_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out/MainServiceTemplate.yaml
index 6f0bd1ea94..beb20a352c 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out/MainServiceTemplate.yaml
@@ -91,6 +91,29 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
server_pcm_001:
type: org.openecomp.resource.abstract.nodes.heat.pcm_server
directives:
@@ -128,6 +151,29 @@ topology_template:
get_input:
- pcm_server_names
- 0
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
compute_port_0:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePort/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePort/out/GlobalSubstitutionTypesServiceTemplate.yaml
index a1c235a298..2e14ee9846 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePort/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePort/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,91 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -425,4 +510,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index d5852c9cff..b5e55a5623 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,101 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ pd_server_accessIPv6:
+ type: string
+ status: SUPPORTED
+ pd_server_accessIPv4:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_device_owner:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -435,4 +530,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOut/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
index d4331dac27..3748b68737 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,97 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -431,4 +522,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOutComputePort/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOutComputePort/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 712c687aad..aebc6c72fb 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOutComputePort/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOutComputePort/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,79 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -413,4 +486,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 0d04a1e8fc..5d5d094d71 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,97 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -431,4 +522,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
index a1c235a298..2e14ee9846 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,91 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -425,4 +510,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/MainServiceTemplate.yaml
index 62c9c11383..1f6dafb872 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/MainServiceTemplate.yaml
@@ -119,10 +119,18 @@ topology_template:
capability: tosca.capabilities.Node
node: packet_mirror_network
relationship: tosca.relationships.DependsOn
+ - dependency_server_pd_02_pd_server:
+ capability: tosca.capabilities.Node
+ node: packet_mirror_network
+ relationship: tosca.relationships.DependsOn
- link_pd_server_pd01_port:
capability: tosca.capabilities.network.Linkable
node: packet_mirror_network
relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pd_01_pd_server:
+ capability: tosca.capabilities.Node
+ node: packet_mirror_network
+ relationship: tosca.relationships.DependsOn
- local_storage_pd_server:
capability: tosca.capabilities.Attachment
node: pd01_volume
@@ -151,4 +159,4 @@ topology_template:
members:
- packet_mirror_network
- pd01_volume
- - abstract_pd_server
+ - abstract_pd_server \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOneGroup/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOneGroup/out/GlobalSubstitutionTypesServiceTemplate.yaml
index ddf141a6e9..c60f5dcb37 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOneGroup/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOneGroup/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,97 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_pd_server_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -431,4 +522,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOutputParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOutputParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index de1531b142..a8ec60b3e4 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOutputParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOutputParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,101 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ pd_server_accessIPv6:
+ type: string
+ status: SUPPORTED
+ pd_server_accessIPv4:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_device_id:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -435,4 +530,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePort/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePort/out/GlobalSubstitutionTypesServiceTemplate.yaml
index ef0e8f7dba..2355f5d3ab 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePort/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePort/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,91 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -426,6 +511,91 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.ps_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_ps_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_ps01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_ps01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.ps_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -846,4 +1016,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 8e61b49e92..7aedccc595 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,95 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ pd_server_accessIPv4:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -430,6 +519,95 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.ps_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_ps_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_ps01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_ps01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ attributes:
+ ps_server_accessIPv4:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.ps_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -854,4 +1032,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml
index b484bfb791..251c8ab448 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,127 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd02_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd02_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd02_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -539,4 +660,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeAndServerGroup/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeAndServerGroup/out/GlobalSubstitutionTypesServiceTemplate.yaml
index b88f5d84f4..9ff132bd99 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeAndServerGroup/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeAndServerGroup/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,103 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.smp:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_smp_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_smp_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_smp_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_smp_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_smp_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
org.openecomp.resource.abstract.nodes.smp:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -437,4 +534,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 087649ff59..7f623815f8 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,151 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_pd02_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd02_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd02_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd02_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -563,4 +708,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 9be0ebfb48..4946303346 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,139 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd02_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd02_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -551,4 +684,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out/MainServiceTemplate.yaml
index 482b76338e..81e04e2615 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out/MainServiceTemplate.yaml
@@ -143,6 +143,10 @@ topology_template:
capability: tosca.capabilities.Node
node: packet_mirror_network
relationship: tosca.relationships.DependsOn
+ - dependency_server_pd_01_pd_server:
+ capability: tosca.capabilities.Node
+ node: packet_mirror_network
+ relationship: tosca.relationships.DependsOn
- link_pd_server_pd01_port:
capability: tosca.capabilities.network.Linkable
node: packet_mirror_network
@@ -170,4 +174,4 @@ topology_template:
members:
- packet_mirror_network
- pd01_volume
- - abstract_pd_server
+ - abstract_pd_server \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 3bdd9e6fc1..93cc747530 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,151 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pd01_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_1_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_pd01_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_pd01_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_0_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -563,4 +708,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 50a0b6a382..68c0f122c0 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,139 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pd01_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_pd01_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -551,4 +684,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out/MainServiceTemplate.yaml
index 5931d1278c..210b537179 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out/MainServiceTemplate.yaml
@@ -154,6 +154,10 @@ topology_template:
capability: tosca.capabilities.Node
node: packet_mirror_network
relationship: tosca.relationships.DependsOn
+ - dependency_server_pd_01_pd_server:
+ capability: tosca.capabilities.Node
+ node: packet_mirror_network
+ relationship: tosca.relationships.DependsOn
- link_pd_server_pd01_port_0:
capability: tosca.capabilities.network.Linkable
node: packet_mirror_network
@@ -182,4 +186,4 @@ topology_template:
- packet_mirror_network
- pd01_volume
- packet_internal_network
- - abstract_pd_server
+ - abstract_pd_server \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 023b48b2a7..7d50dbc153 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,127 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd02_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd02_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd02_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1136,3 +1257,599 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ required: true
+ status: SUPPORTED
+ cps_net_ips:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ required: true
+ status: SUPPORTED
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: the name of security group
+ required: true
+ status: SUPPORTED
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ pcm_volumes:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ required: true
+ status: SUPPORTED
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ cps_net_name:
+ type: string
+ description: CPS network name
+ required: true
+ status: SUPPORTED
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ required: true
+ status: SUPPORTED
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ required: true
+ status: SUPPORTED
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ status: SUPPORTED
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ network.incoming.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pcm_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.usage_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pcm_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ end_point_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pcm:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_0:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pcm:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pcm_port_1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out/MainServiceTemplate.yaml
index a6938c23d8..b9c5bc8be0 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out/MainServiceTemplate.yaml
@@ -450,6 +450,33 @@ topology_template:
port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
+ requirements:
+ - dependency_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_server_pcm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ - dependency_pcm_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - dependency_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
abstract_pd_server:
type: org.openecomp.resource.abstract.nodes.pd_server
directives:
@@ -507,4 +534,4 @@ topology_template:
description: heat template that creates MOG stack
members:
- server_pcm_003
- - abstract_pd_server
+ - abstract_pd_server \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwosameporttypes/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwosameporttypes/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 5278a654c0..2604672e9c 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwosameporttypes/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwosameporttypes/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,127 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pd01_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -539,4 +660,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index e68bf0fb94..d433390469 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,137 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd02_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd02_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd02_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ pd_server_accessIPv4:
+ type: string
+ status: SUPPORTED
+ pd_server_pd02_port_device_owner:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_device_id:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -549,4 +680,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 6f8a16604a..839624153b 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,423 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_pd_server_key_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_personality:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_pd_server_image_update_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_template_VMInt_OAM_lb_virtual_machine_interface_properties:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+ required: true
+ status: SUPPORTED
+ port_pd01_port_device_id:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_admin_state_up:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_template_VMInt_OAM_lb_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_pd_server_diskConfig:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_mac_address:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_template_VMInt_OAM_lb_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_allowed_address_pairs:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_pd_server_admin_pass:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_flavor_update_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_template_VMInt_OAM_lb_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_template_VMInt_OAM_lb_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_template_VMInt_OAM_lb_virtual_machine_interface_allowed_address_pairs:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ required: true
+ status: SUPPORTED
+ port_pd01_port_value_specs:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_pd_server_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_template_VMInt_OAM_lb_port_tuple_refs:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_pd_server_software_config_transport:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_pd_server_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_pd01_port_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_contrail_service_instance_ind:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_template_VMInt_OAM_lb_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_binding:vnic_type:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_device_owner:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_qos_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_template_VMInt_OAM_lb_virtual_network_refs:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_template_VMInt_OAM_lb_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_template_VMInt_OAM_lb_virtual_machine_interface_mac_addresses:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_template_VMInt_OAM_lb_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_port_security_enabled:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ port_template_VMInt_OAM_lb_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_update_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_reservation_id:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_template_VMInt_OAM_lb_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_template_VMInt_OAM_lb_security_group_refs:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ attributes:
+ pd_server_pd01_port_allowed_address_pairs:
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ pd_server_template_VMInt_OAM_lb_virtual_machine_interface_mac_addresses:
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_template_VMInt_OAM_lb_virtual_network_refs:
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_template_VMInt_OAM_lb_fq_name:
+ type: string
+ status: SUPPORTED
+ pd_server_show:
+ type: string
+ status: SUPPORTED
+ pd_server_console_urls:
+ type: string
+ status: SUPPORTED
+ pd_server_template_VMInt_OAM_lb_virtual_machine_interface_allowed_address_pairs:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ status: SUPPORTED
+ pd_server_pd01_port_security_groups:
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_pd01_port_port_security_enabled:
+ type: boolean
+ status: SUPPORTED
+ pd_server_pd01_port_status:
+ type: string
+ status: SUPPORTED
+ pd_server_template_VMInt_OAM_lb_port_tuple_refs:
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_pd01_port_fixed_ips:
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ pd_server_accessIPv6:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_admin_state_up:
+ type: boolean
+ status: SUPPORTED
+ pd_server_instance_name:
+ type: string
+ status: SUPPORTED
+ pd_server_template_VMInt_OAM_lb_name:
+ type: string
+ status: SUPPORTED
+ pd_server_accessIPv4:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_device_owner:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_show:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_network:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_qos_policy:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_mac_address:
+ type: string
+ status: SUPPORTED
+ pd_server_addresses:
+ type: map
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
+ pd_server_pd01_port_tenant_id:
+ type: string
+ status: SUPPORTED
+ pd_server_template_VMInt_OAM_lb_virtual_machine_interface_properties:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+ status: SUPPORTED
+ pd_server_pd01_port_device_id:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_name:
+ type: string
+ status: SUPPORTED
+ pd_server_template_VMInt_OAM_lb_show:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_subnets:
+ type: list
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -830,4 +1247,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 31466870a4..afcc75b7ea 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,134 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd02_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd02_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd02_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ pd_server_accessIPv4:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_device_owner:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -546,4 +674,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttOut/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
index b484bfb791..251c8ab448 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,127 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd02_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd02_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd02_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -539,4 +660,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortTypesAndGetAttOut/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortTypesAndGetAttOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 5278a654c0..2604672e9c 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortTypesAndGetAttOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortTypesAndGetAttOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,127 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pd01_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -539,4 +660,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index deb8b3db25..b80d23fc00 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,137 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pd01_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ pd_server_accessIPv4:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_1_device_owner:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_0_device_owner:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -549,4 +680,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 3cf557e3a7..69208ef3ca 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,137 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pd01_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_1_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ pd_server_pd01_port_0_device_id:
+ type: string
+ status: SUPPORTED
+ pd_server_accessIPv4:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_1_device_owner:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -549,4 +680,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 242eb47cbc..2ec44ccb44 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,104 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_pd_server_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ pd_server_accessIPv4:
+ type: string
+ status: SUPPORTED
+ pd_server_pd01_port_device_owner:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -439,6 +537,104 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.ps_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_ps_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ attributes:
+ ps_server_accessIPv4:
+ type: string
+ status: SUPPORTED
+ ps_server_pd01_port_device_id:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.oam_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1304,3 +1500,98 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.oam_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_oam_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_oam_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_oam_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_oam_server_scheduler_hints:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ attributes:
+ oam_server_accessIPv4:
+ type: string
+ status: SUPPORTED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/MainServiceTemplate.yaml
index 82259a7a1a..abe0e1701a 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/MainServiceTemplate.yaml
@@ -245,6 +245,10 @@ topology_template:
capability: tosca.capabilities.Node
node: packet_mirror_network
relationship: tosca.relationships.DependsOn
+ - dependency_server_pd_01_pd_server:
+ capability: tosca.capabilities.Node
+ node: packet_mirror_network
+ relationship: tosca.relationships.DependsOn
abstract_ps_server:
type: org.openecomp.resource.abstract.nodes.ps_server
directives:
@@ -294,6 +298,10 @@ topology_template:
capability: tosca.capabilities.Node
node: packet_mirror_network
relationship: tosca.relationships.DependsOn
+ - dependency_server_ps_01_ps_server:
+ capability: tosca.capabilities.Node
+ node: packet_mirror_network
+ relationship: tosca.relationships.DependsOn
abstract_oam_server:
type: org.openecomp.resource.abstract.nodes.oam_server
directives:
@@ -342,6 +350,10 @@ topology_template:
capability: tosca.capabilities.Node
node: packet_mirror_network
relationship: tosca.relationships.DependsOn
+ - dependency_server_oam_01_oam_server:
+ capability: tosca.capabilities.Node
+ node: packet_mirror_network
+ relationship: tosca.relationships.DependsOn
network_policy_server_ps:
type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
properties:
@@ -469,4 +481,4 @@ topology_template:
name: def
affinity: host
targets:
- - BE_Affinity_group
+ - BE_Affinity_group \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithPorts/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithPorts/out/GlobalSubstitutionTypesServiceTemplate.yaml
index ca9a33c87d..186a086f4b 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithPorts/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithPorts/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,85 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -420,6 +499,85 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.ps_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_ps_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
org.openecomp.resource.abstract.nodes.oam_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1250,3 +1408,82 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.oam_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_oam_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_oam_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_oam_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 8a723e741d..b4bd1e21a5 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,85 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1237,4 +1316,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 892749544e..40180ddccb 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,127 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ port_pd01_port_2_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_3_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_3_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_pd01_port_2_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_2_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_3_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_3_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_3_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_2_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_2_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_3_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_2_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_3_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd01_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd01_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd01_port_3_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_2_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_3_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1369,4 +1490,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 0521146745..3a228ed1cd 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,89 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ pd_server_accessIPv4:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -424,6 +507,89 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.ps_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_ps_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_ps01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_ps01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ attributes:
+ ps_server_accessIPv4:
+ type: string
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.ps_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -842,4 +1008,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoSetsOfSingle/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoSetsOfSingle/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 8080962bc4..b173806b0f 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoSetsOfSingle/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoSetsOfSingle/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,85 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -420,6 +499,85 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.vfc.nodes.heat.ps_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ properties:
+ compute_ps_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ status: SUPPORTED
+ constraints:
+ - greater_or_equal: 0
+ port_ps01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_ps01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
org.openecomp.resource.abstract.nodes.ps_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -834,4 +992,4 @@ node_types:
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
occurrences:
- 1
- - UNBOUNDED
+ - UNBOUNDED \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/in/MainServiceTemplate.yaml
index d007e85493..5d7542f1a4 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/in/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/in/MainServiceTemplate.yaml
@@ -110,7 +110,7 @@ topology_template:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
network: Internal2-net
- device_id: {get_attribute: [FSB2_template, device_id]}
+ device_id: {get_attribute: [FSB2_template, att]}
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -131,7 +131,7 @@ topology_template:
properties:
mac_address:
get_input: fsb1-Internal1-mac
- network: {get_attribute: [FSB2_Internal1, device_id]}
+ network: {get_attribute: [FSB2_Internal1, att]}
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -146,7 +146,7 @@ topology_template:
properties:
mac_address:
get_input: fsb1-Internal1-mac
- network: {get_attribute: [FSB2_Internal1, device_id]}
+ network: {get_attribute: [FSB2_Internal1, att]}
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out/SubstitutionServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out/SubstitutionServiceTemplate.yaml
index e4fa28737d..9a9b57d6a9 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out/SubstitutionServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out/SubstitutionServiceTemplate.yaml
@@ -126,7 +126,7 @@ topology_template:
network:
get_attribute:
- FSB1_FSB2_Internal
- - device_id
+ - att
mac_address:
get_input: port_FSB1_Internal_mac_address
requirements:
@@ -156,7 +156,7 @@ topology_template:
device_id:
get_attribute:
- FSB1
- - device_id
+ - att
network:
get_input:
- port_FSB2_Internal_network
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LimitEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LimitEntity.java
index e40b2988b3..58ccd5e608 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LimitEntity.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LimitEntity.java
@@ -20,6 +20,9 @@ public class LimitEntity implements VersionableEntity {
private String unit;
private AggregationFunction aggregationFunction;
private String time;
+ //Defined and used only to find parent(EP/LKG) of Limit. Not to be persisted in DB and License
+ // Xmls
+ private String parent;
public LimitEntity() {
}
@@ -44,7 +47,7 @@ public class LimitEntity implements VersionableEntity {
}
public void setAggregationFunction(
- AggregationFunction aggregationFunction) {
+ AggregationFunction aggregationFunction) {
this.aggregationFunction = aggregationFunction;
}
@@ -143,10 +146,20 @@ public class LimitEntity implements VersionableEntity {
this.value = value;
}
- @Override
+ //Defined and used only to find parent(EP/LKG) of Limit. Not to be persisted in DB and License
+ // Xmls
+ public String getParent() {
+ return parent;
+ }
+
+ public void setParent(String parent) {
+ this.parent = parent;
+ }
+
+ @Override
public int hashCode() {
return Objects.hash(vendorLicenseModelId, version, epLkgId, id, name, description, type,
- metric, unit, time, aggregationFunction, value);
+ metric, unit, time, aggregationFunction, value);
}
@Override
@@ -159,35 +172,35 @@ public class LimitEntity implements VersionableEntity {
}
LimitEntity that = (LimitEntity) obj;
return Objects.equals(that.unit, unit)
- && Objects.equals(that.value, value)
- && Objects.equals(vendorLicenseModelId, that.vendorLicenseModelId)
- && Objects.equals(epLkgId, that.epLkgId)
- && Objects.equals(id, that.id)
- && Objects.equals(name, that.name)
- && Objects.equals(description, that.description)
- && Objects.equals(type, that.type)
- && Objects.equals(metric, that.metric)
- && Objects.equals(aggregationFunction, that.aggregationFunction);
+ && Objects.equals(that.value, value)
+ && Objects.equals(vendorLicenseModelId, that.vendorLicenseModelId)
+ && Objects.equals(epLkgId, that.epLkgId)
+ && Objects.equals(id, that.id)
+ && Objects.equals(name, that.name)
+ && Objects.equals(description, that.description)
+ && Objects.equals(type, that.type)
+ && Objects.equals(metric, that.metric)
+ && Objects.equals(aggregationFunction, that.aggregationFunction);
}
@Override
public String toString() {
return "LimitEntity{"
- + "vendorLicenseModelId='" + vendorLicenseModelId + '\''
- + ", version=" + version
- + ", epLkgId=" + epLkgId
- + ", id='" + id + '\''
- + ", name='" + name + '\''
- + ", description='" + description + '\''
- + ", type=" + type
- + ", metric=" + metric
- + ", value='" + value + '\''
- + ", unit='" + unit + '\''
- + ", aggregationFunction=" + aggregationFunction
- + ", time=" + time
-
- + '}';
+ + "vendorLicenseModelId='" + vendorLicenseModelId + '\''
+ + ", version=" + version
+ + ", epLkgId=" + epLkgId
+ + ", id='" + id + '\''
+ + ", name='" + name + '\''
+ + ", description='" + description + '\''
+ + ", type=" + type
+ + ", metric=" + metric
+ + ", value='" + value + '\''
+ + ", unit='" + unit + '\''
+ + ", aggregationFunction=" + aggregationFunction
+ + ", time=" + time
+
+ + '}';
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/healing/HealingService.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/healing/HealingService.java
index 027cb1e5be..6ae2de1a63 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/healing/HealingService.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/healing/HealingService.java
@@ -24,8 +24,9 @@ import org.openecomp.sdc.versioning.dao.types.VersionableEntity;
public interface HealingService {
- // VersionableEntity heal(VersionableEntity toHeal, String user);
VersionableEntity heal(VersionableEntity toHeal, String user);
+
+ void persistNoHealing(VersionableEntity alreadyHealed);
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/healing/impl/SimpleHealingServiceImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/healing/impl/SimpleHealingServiceImpl.java
index eeed3b069d..7cb3e2e844 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/healing/impl/SimpleHealingServiceImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/healing/impl/SimpleHealingServiceImpl.java
@@ -20,7 +20,6 @@
package org.openecomp.sdc.vendorlicense.healing.impl;
-import org.openecomp.sdc.common.utils.CommonUtil;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
@@ -41,9 +40,9 @@ import java.util.UUID;
public class SimpleHealingServiceImpl implements HealingService {
private static final EntitlementPoolDao entitlementPoolDao =
- EntitlementPoolDaoFactory.getInstance().createInterface();
+ EntitlementPoolDaoFactory.getInstance().createInterface();
private static final LicenseKeyGroupDao licenseKeyGroupDao =
- LicenseKeyGroupDaoFactory.getInstance().createInterface();
+ LicenseKeyGroupDaoFactory.getInstance().createInterface();
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
@Override
@@ -51,6 +50,15 @@ public class SimpleHealingServiceImpl implements HealingService {
return handleMissingVersionId(toHeal, user);
}
+ @Override
+ public void persistNoHealing(VersionableEntity alreadyHealed) {
+ if (alreadyHealed instanceof EntitlementPoolEntity) {
+ entitlementPoolDao.update((EntitlementPoolEntity) alreadyHealed);
+ } else if (alreadyHealed instanceof LicenseKeyGroupEntity) {
+ licenseKeyGroupDao.update((LicenseKeyGroupEntity) alreadyHealed);
+ }
+ }
+
private VersionableEntity handleMissingVersionId(VersionableEntity toHeal, String user) {
@@ -68,11 +76,10 @@ public class SimpleHealingServiceImpl implements HealingService {
licenseKeyGroupDao.update((LicenseKeyGroupEntity) toHeal);
} else {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.SELF_HEALING, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.UNSUPPORTED_OPERATION);
+ LoggerTragetServiceName.SELF_HEALING, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.UNSUPPORTED_OPERATION);
throw new UnsupportedOperationException(
- "Unsupported operation for 1610 release/1607->1610 migration.");
- //todo maybe errorbuilder?
+ "Unsupported operation for 1610 release/1607->1610 migration.");
}
mdcDataDebugMessage.debugExitMessage(null, null);
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java
index 7d2cdc5474..282b4e6743 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java
@@ -22,21 +22,18 @@ package org.openecomp.sdc.vendorlicense.licenseartifacts.impl;
import org.apache.commons.collections.CollectionUtils;
import org.openecomp.core.utilities.file.FileContentHandler;
-import org.openecomp.sdc.common.utils.CommonUtil;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
import org.openecomp.sdc.vendorlicense.HealingServiceFactory;
import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
-import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory;
import org.openecomp.sdc.vendorlicense.healing.HealingService;
import org.openecomp.sdc.vendorlicense.licenseartifacts.VendorLicenseArtifactsService;
import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.VendorLicenseArtifact;
import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.VnfLicenseArtifact;
-import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.util.VendorLicenseArtifactsServiceUtils;
import org.openecomp.sdc.versioning.dao.types.Version;
import java.util.Collection;
@@ -48,18 +45,25 @@ import java.util.stream.Collectors;
import static org.openecomp.sdc.vendorlicense.VendorLicenseConstants.VENDOR_LICENSE_MODEL_ARTIFACT_NAME_WITH_PATH;
import static org.openecomp.sdc.vendorlicense.VendorLicenseConstants.VNF_ARTIFACT_NAME_WITH_PATH;
+import static org.openecomp.sdc.vendorlicense.licenseartifacts.impl.util.VendorLicenseArtifactsServiceUtils.filterChangedEntities;
+import static org.openecomp.sdc.vendorlicense.licenseartifacts.impl.util.VendorLicenseArtifactsServiceUtils.getFinalVersionsForVlm;
+import static org.openecomp.sdc.vendorlicense.licenseartifacts.impl.util.VendorLicenseArtifactsServiceUtils.getVendorName;
+import static org.openecomp.sdc.vendorlicense.licenseartifacts.impl.util.VendorLicenseArtifactsServiceUtils.healEPs;
+import static org.openecomp.sdc.vendorlicense.licenseartifacts.impl.util.VendorLicenseArtifactsServiceUtils.healLkgs;
+import static org.openecomp.sdc.vendorlicense.licenseartifacts.impl.util.VendorLicenseArtifactsServiceUtils.prepareForFiltering;
public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifactsService {
public static final VendorLicenseFacade vendorLicenseFacade =
- VendorLicenseFacadeFactory.getInstance().createInterface();
+ VendorLicenseFacadeFactory.getInstance().createInterface();
public static final HealingService healingService =
- HealingServiceFactory.getInstance().createInterface();
+ HealingServiceFactory.getInstance().createInterface();
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
- static byte[] createVnfArtifact(String vspId, String vlmId, Version vlmVersion, String vendorName,
- List<String> featureGroups, String user) {
+ private static byte[] createVnfArtifact(String vspId, String vlmId, Version vlmVersion,
+ String vendorName,
+ List<String> featureGroups, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM name", vendorName);
@@ -68,31 +72,33 @@ public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifacts
artifact.setVspId(vspId);
artifact.setVendorName(vendorName);
- if(featureGroups != null) {
+ if (featureGroups != null) {
for (String featureGroupId : featureGroups) {
FeatureGroupModel featureGroupModel = vendorLicenseFacade
- .getFeatureGroupModel(new FeatureGroupEntity(vlmId, vlmVersion, featureGroupId), user);
- Set<EntitlementPoolEntity> entitlementPoolEntities = featureGroupModel.getEntitlementPools();
- for(EntitlementPoolEntity entitlementPoolEntity : entitlementPoolEntities){
+ .getFeatureGroupModel(new FeatureGroupEntity(vlmId, vlmVersion, featureGroupId), user);
+ Set<EntitlementPoolEntity> entitlementPoolEntities =
+ featureGroupModel.getEntitlementPools();
+ for (EntitlementPoolEntity entitlementPoolEntity : entitlementPoolEntities) {
entitlementPoolEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, vlmVersion,
- entitlementPoolEntity.getId(), user));
+ entitlementPoolEntity.getId(), user));
entitlementPoolEntity.setManufacturerReferenceNumber(featureGroupModel.
- getEntityManufacturerReferenceNumber());
+ getEntityManufacturerReferenceNumber());
}
- Set<LicenseKeyGroupEntity> licenseKeyGroupEntities = featureGroupModel.getLicenseKeyGroups();
- for(LicenseKeyGroupEntity licenseKeyGroupEntity : licenseKeyGroupEntities){
+ Set<LicenseKeyGroupEntity> licenseKeyGroupEntities =
+ featureGroupModel.getLicenseKeyGroups();
+ for (LicenseKeyGroupEntity licenseKeyGroupEntity : licenseKeyGroupEntities) {
licenseKeyGroupEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, vlmVersion,
- licenseKeyGroupEntity.getId(), user));
+ licenseKeyGroupEntity.getId(), user));
licenseKeyGroupEntity.setManufacturerReferenceNumber(featureGroupModel.
- getEntityManufacturerReferenceNumber());
+ getEntityManufacturerReferenceNumber());
}
featureGroupModel.setEntitlementPools(entitlementPoolEntities.stream().map(
- entitlementPoolEntity -> (EntitlementPoolEntity) healingService
- .heal(entitlementPoolEntity, user)).collect(Collectors.toSet()));
+ entitlementPoolEntity -> (EntitlementPoolEntity) healingService
+ .heal(entitlementPoolEntity, user)).collect(Collectors.toSet()));
featureGroupModel.setLicenseKeyGroups(licenseKeyGroupEntities.stream().map(
- licenseKeyGroupEntity -> (LicenseKeyGroupEntity) healingService
- .heal(licenseKeyGroupEntity, user)).collect(Collectors.toSet()));
+ licenseKeyGroupEntity -> (LicenseKeyGroupEntity) healingService
+ .heal(licenseKeyGroupEntity, user)).collect(Collectors.toSet()));
artifact.getFeatureGroups().add(featureGroupModel);
}
}
@@ -101,7 +107,7 @@ public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifacts
return artifact.toXml().getBytes();
}
- static byte[] createVendorLicenseArtifact(String vlmId, String vendorName, String user) {
+ private static byte[] createVendorLicenseArtifact(String vlmId, String vendorName, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM name", vendorName);
@@ -111,43 +117,42 @@ public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifacts
Set<EntitlementPoolEntity> entitlementPoolEntities = new HashSet<>();
Set<LicenseKeyGroupEntity> licenseKeyGroupEntities = new HashSet<>();
- List<Version> finalVersions = VendorLicenseArtifactsServiceUtils.getFinalVersionsForVlm(vlmId);
+ List<Version> finalVersions = getFinalVersionsForVlm(vlmId);
for (Version finalVersion : finalVersions) {
Collection<EntitlementPoolEntity> coll = vendorLicenseFacade.listEntitlementPools(vlmId,
- finalVersion, user);
- coll.stream().forEach( entitlementPoolEntity -> {
+ finalVersion, user);
+ coll.stream().forEach(entitlementPoolEntity -> {
entitlementPoolEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, finalVersion,
- entitlementPoolEntity.getId(), user));
+ entitlementPoolEntity.getId(), user));
Optional<String> manufacturerReferenceNumber = getFeatureGroupManufactureRefNumber
- (entitlementPoolEntity.getReferencingFeatureGroups(), vlmId, finalVersion, user);
- manufacturerReferenceNumber.ifPresent(mrn -> entitlementPoolEntity
- .setManufacturerReferenceNumber(mrn));
+ (entitlementPoolEntity.getReferencingFeatureGroups(), vlmId, finalVersion, user);
+ manufacturerReferenceNumber
+ .ifPresent(entitlementPoolEntity::setManufacturerReferenceNumber);
});
entitlementPoolEntities.addAll(coll);
Collection<LicenseKeyGroupEntity> coll2 = vendorLicenseFacade.listLicenseKeyGroups(vlmId,
- finalVersion, user);
+ finalVersion, user);
- coll2.stream().forEach( licenseKeyGroupEntity -> {
+ coll2.stream().forEach(licenseKeyGroupEntity -> {
licenseKeyGroupEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, finalVersion,
- licenseKeyGroupEntity.getId(), user));
+ licenseKeyGroupEntity.getId(), user));
Optional<String> manufacturerReferenceNumber = getFeatureGroupManufactureRefNumber
- (licenseKeyGroupEntity.getReferencingFeatureGroups(), vlmId, finalVersion, user);
- manufacturerReferenceNumber.ifPresent(mrn -> licenseKeyGroupEntity
- .setManufacturerReferenceNumber(mrn));
+ (licenseKeyGroupEntity.getReferencingFeatureGroups(), vlmId, finalVersion, user);
+ manufacturerReferenceNumber
+ .ifPresent(licenseKeyGroupEntity::setManufacturerReferenceNumber);
});
licenseKeyGroupEntities.addAll(coll2);
}
- entitlementPoolEntities = VendorLicenseArtifactsServiceUtils
- .healEPs(user,
- VendorLicenseArtifactsServiceUtils.filterChangedEntities(entitlementPoolEntities));
- licenseKeyGroupEntities = VendorLicenseArtifactsServiceUtils
- .healLkgs(user,
- VendorLicenseArtifactsServiceUtils.filterChangedEntities(licenseKeyGroupEntities));
-
+ entitlementPoolEntities =
+ healEPs(user, filterChangedEntities(prepareForFiltering(entitlementPoolEntities, user,
+ true)));
+ licenseKeyGroupEntities =
+ healLkgs(user, filterChangedEntities(prepareForFiltering(licenseKeyGroupEntities, user,
+ false)));
vendorLicenseArtifact.setEntitlementPoolEntities(entitlementPoolEntities);
vendorLicenseArtifact.setLicenseKeyGroupEntities(licenseKeyGroupEntities);
@@ -156,30 +161,33 @@ public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifacts
}
private static Optional<String> getFeatureGroupManufactureRefNumber(Set<String> featureGroupIds,
- String vlmId, Version finalVersion, String user) {
+ String vlmId,
+ Version finalVersion,
+ String user) {
String manufactureReferenceNumber = null;
if (CollectionUtils.isNotEmpty(featureGroupIds)) {
Object[] featureGroupIdsList = featureGroupIds.toArray();
- if (featureGroupIdsList != null && featureGroupIdsList.length > 0) {
+ if (featureGroupIdsList.length > 0) {
FeatureGroupEntity featureGroup =
- vendorLicenseFacade.getFeatureGroup(new FeatureGroupEntity(vlmId, finalVersion,
- featureGroupIdsList[0].toString()), user);
+ vendorLicenseFacade.getFeatureGroup(new FeatureGroupEntity(vlmId, finalVersion,
+ featureGroupIdsList[0].toString()), user);
manufactureReferenceNumber = featureGroup != null ? featureGroup
- .getManufacturerReferenceNumber() : null;
+ .getManufacturerReferenceNumber() : null;
}
}
return manufactureReferenceNumber != null ? Optional.of(manufactureReferenceNumber) :
- Optional.empty();
+ Optional.empty();
}
/**
* Create License Artifacts.
- * @param vspId vspId
- * @param vlmId vlmId
- * @param vlmVersion vlmVersion
+ *
+ * @param vspId vspId
+ * @param vlmId vlmId
+ * @param vlmVersion vlmVersion
* @param featureGroups featureGroups
- * @param user user
+ * @param user user
* @return FileContentHandler
*/
public FileContentHandler createLicenseArtifacts(String vspId, String vlmId, Version vlmVersion,
@@ -189,12 +197,12 @@ public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifacts
mdcDataDebugMessage.debugEntryMessage("VSP Id", vspId);
FileContentHandler artifacts = new FileContentHandler();
- String vendorName = VendorLicenseArtifactsServiceUtils.getVendorName(vlmId, user);
+ String vendorName = getVendorName(vlmId, user);
artifacts.addFile(VNF_ARTIFACT_NAME_WITH_PATH,
- createVnfArtifact(vspId, vlmId, vlmVersion, vendorName, featureGroups, user));
+ createVnfArtifact(vspId, vlmId, vlmVersion, vendorName, featureGroups, user));
artifacts.addFile(VENDOR_LICENSE_MODEL_ARTIFACT_NAME_WITH_PATH,
- createVendorLicenseArtifact(vlmId, vendorName, user));
+ createVendorLicenseArtifact(vlmId, vendorName, user));
mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/util/VendorLicenseArtifactsServiceUtils.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/util/VendorLicenseArtifactsServiceUtils.java
index f3e09766db..502aa350b9 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/util/VendorLicenseArtifactsServiceUtils.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/util/VendorLicenseArtifactsServiceUtils.java
@@ -45,15 +45,15 @@ import java.util.Set;
public class VendorLicenseArtifactsServiceUtils {
private static final HealingService healingService =
- HealingServiceFactory.getInstance().createInterface();
+ HealingServiceFactory.getInstance().createInterface();
/**
* maps the entities by id
*
* @return a Map of id -> list of versionable entities with that id
*/
- static MultiValuedMap<String, VersionableEntity> mapById(
- Collection<? extends VersionableEntity> versionableEntities) {
+ private static MultiValuedMap<String, VersionableEntity> mapById(
+ Collection<? extends VersionableEntity> versionableEntities) {
MultiValuedMap<String, VersionableEntity> mappedById = new ArrayListValuedHashMap<>();
for (VersionableEntity ve : versionableEntities) {
mappedById.put(ve.getId(), ve);
@@ -64,16 +64,15 @@ public class VendorLicenseArtifactsServiceUtils {
/**
* For all entities with same id, only entities that differ from one another will be returned.
* If no change has occured, the entity with the earlier VLM version will be returned.
- * If only one version of said entitity exists it will be returned
- * @param versionableEntities
+ * If only one version of said entities exists it will be returned
* @return a list of entities that has been changed
*/
public static List<VersionableEntity> filterChangedEntities(
- Collection<? extends VersionableEntity> versionableEntities) {
+ Collection<? extends VersionableEntity> versionableEntities) {
MultiValuedMap<String, VersionableEntity> entitiesById = mapById(
- versionableEntities);
+ versionableEntities);
MultiValuedMap<String, VersionableEntity> entitiesByVersionUuId =
- new ArrayListValuedHashMap<>();
+ new ArrayListValuedHashMap<>();
List<VersionableEntity> changedOnly = new ArrayList<>();
for (String epId : entitiesById.keySet()) {
@@ -86,7 +85,7 @@ public class VendorLicenseArtifactsServiceUtils {
//for every list of eps which have the same uuid, get the one with the earliest vlm version.
for (String versionUid : entitiesByVersionUuId.keySet()) {
List<VersionableEntity> versionableEntitiesForUuid =
- (List<VersionableEntity>) entitiesByVersionUuId.get(versionUid);
+ (List<VersionableEntity>) entitiesByVersionUuId.get(versionUid);
versionableEntitiesForUuid.sort(new VersionableEntitySortByVlmMajorVersion());
changedOnly.add(versionableEntitiesForUuid.get(0));
}
@@ -99,7 +98,7 @@ public class VendorLicenseArtifactsServiceUtils {
Set<LicenseKeyGroupEntity> healed = new HashSet<>();
for (VersionableEntity licenseKeyGroupEntity : licenseKeyGroupEntities) {
healed.add((LicenseKeyGroupEntity) VendorLicenseArtifactsServiceImpl.healingService
- .heal(licenseKeyGroupEntity, user));
+ .heal(licenseKeyGroupEntity, user));
}
return healed;
@@ -110,7 +109,7 @@ public class VendorLicenseArtifactsServiceUtils {
Set<EntitlementPoolEntity> healed = new HashSet<>();
for (VersionableEntity entitlementPoolEntity : entitlementPoolEntities) {
healed.add((EntitlementPoolEntity) VendorLicenseArtifactsServiceImpl.healingService
- .heal(entitlementPoolEntity, user));
+ .heal(entitlementPoolEntity, user));
}
return healed;
@@ -118,15 +117,69 @@ public class VendorLicenseArtifactsServiceUtils {
public static List<Version> getFinalVersionsForVlm(String vlmId) {
VersionInfo versionInfo =
- VendorLicenseArtifactsServiceImpl.vendorLicenseFacade
- .getVersionInfo(vlmId, VersionableEntityAction.Read, "");
+ VendorLicenseArtifactsServiceImpl.vendorLicenseFacade
+ .getVersionInfo(vlmId, VersionableEntityAction.Read, "");
return versionInfo.getFinalVersions();
}
public static String getVendorName(String vendorLicenseModelId, String user) {
return VendorLicenseArtifactsServiceImpl.vendorLicenseFacade
- .getVendorLicenseModel(vendorLicenseModelId, null, user)
- .getVendorLicenseModel().getVendorName();
+ .getVendorLicenseModel(vendorLicenseModelId, null, user)
+ .getVendorLicenseModel().getVendorName();
}
+
+
+ /**
+ * Written to handle the consequences of ATTASDC-4780 where version_uuid was not saved or
+ * retrieved correctly by DAO for EPs and LKGs. Performs a healing of sorts according to the
+ * following : 1. all versions of a specific entity (EP or LKG that have the same invariant_uuid)
+ * are ordered by their VLM version 2. first element is sent to healing (which will set a
+ * versionUUID for it IF it doesnt exist) 3. each subsequent element is compared to previous . If
+ * same, UUID is copied from the previous element , if they differ - the current element is sent
+ * to healing as before. For VLMs created post-bugfix this code should not update any element
+ */
+ public static Collection<? extends VersionableEntity> prepareForFiltering(Collection<? extends
+ VersionableEntity> versionableEntities, String user, boolean isEP) {
+ MultiValuedMap<String, VersionableEntity> entitiesById = mapById(
+ versionableEntities);
+
+ for (String epId : entitiesById.keySet()) {
+ List<VersionableEntity> versionableEntitiesForId = new ArrayList<>();
+ versionableEntitiesForId.addAll(entitiesById.get(epId));
+ versionableEntitiesForId.sort(new VersionableEntitySortByVlmMajorVersion());
+ healingService.heal(versionableEntitiesForId.get(0), user);
+ for (int i = 1; i < versionableEntitiesForId.size(); i++) {
+ if (isEP) {
+ EntitlementPoolEntity current = (EntitlementPoolEntity) versionableEntitiesForId.get(i);
+ EntitlementPoolEntity previous = (EntitlementPoolEntity) versionableEntitiesForId
+ .get(i - 1);
+ if (current.equals(previous) && current.getVersionUuId() == null) {
+ current.setVersionUuId(previous.getVersionUuId());
+ healingService.persistNoHealing(current);
+ } else {
+ versionableEntitiesForId.set(i, healingService.heal(versionableEntitiesForId.get(i),
+ user));
+ }
+
+ } else {
+ LicenseKeyGroupEntity current = (LicenseKeyGroupEntity) versionableEntitiesForId.get(i);
+ LicenseKeyGroupEntity previous = (LicenseKeyGroupEntity) versionableEntitiesForId
+ .get(i - 1);
+ if (current.equals(previous) && current.getVersionUuId() == null) {
+ current.setVersionUuId(previous.getVersionUuId());
+ healingService.persistNoHealing(current);
+ } else {
+ versionableEntitiesForId.set(i, healingService.heal(versionableEntitiesForId.get(i),
+ user));
+ }
+
+
+ }
+ }
+ }
+ return versionableEntities;
+ }
+
+
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/type/VspDetails.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/type/VspDetails.java
index 2758e3dfe9..ccadeced62 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/type/VspDetails.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/type/VspDetails.java
@@ -61,6 +61,11 @@ public class VspDetails implements VersionableEntity {
private Long writetimeMicroSeconds;
private String onboardingMethod;
+
+ private String onboardingOrigin;
+
+ private String networkPackageName;
+
public VspDetails() {
}
@@ -215,12 +220,29 @@ public class VspDetails implements VersionableEntity {
this.oldVersion = oldVersion;
}
+ public String getOnboardingOrigin() {
+ return onboardingOrigin;
+ }
+
+ public void setOnboardingOrigin(String onboardingOrigin) {
+ this.onboardingOrigin = onboardingOrigin;
+ }
+
public String getOnboardingMethod() {
return onboardingMethod;
}
public void setOnboardingMethod(String onboardingMethod) {
this.onboardingMethod = onboardingMethod;
}
+
+ public String getNetworkPackageName() {
+ return networkPackageName;
+ }
+
+ public void setNetworkPackageName(String networkPackageName) {
+ this.networkPackageName = networkPackageName;
+ }
+
@Override
public String toString() {
return String.format(
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/filedatastructuremodule/CandidateService.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/filedatastructuremodule/CandidateService.java
index 4ca623e6a3..6cc639fac0 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/filedatastructuremodule/CandidateService.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/filedatastructuremodule/CandidateService.java
@@ -21,10 +21,10 @@
package org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule;
import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
import org.openecomp.sdc.heat.datatypes.manifest.ManifestContent;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.vendorsoftwareproduct.types.CandidateDataEntityTo;
import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.AnalyzedZipHeatFiles;
@@ -61,9 +61,12 @@ public interface CandidateService {
Optional<ByteArrayInputStream> fetchZipFileByteArrayInputStream(String vspId,
OrchestrationTemplateCandidateData candidateDataEntity,
- String manifest, Map<String, List<ErrorMessage>> uploadErrors);
+ String manifest,
+ OnboardingTypesEnum type,
+ Map<String, List<ErrorMessage>> uploadErrors);
- byte[] replaceManifestInZip(ByteBuffer contentData, String manifest, String vspId)
+ byte[] replaceManifestInZip(ByteBuffer contentData, String manifest, String vspId,
+ OnboardingTypesEnum type)
throws IOException;
Optional<ManifestContent> createManifest(VspDetails vspDetails,
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/utils/CandidateEntityBuilder.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/utils/CandidateEntityBuilder.java
index 9540f3d965..ca5329344b 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/utils/CandidateEntityBuilder.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/utils/CandidateEntityBuilder.java
@@ -75,6 +75,14 @@ public class CandidateEntityBuilder {
return candidateDataEntity;
}
+// public OrchestrationTemplateCandidateData buildOrchestrationTemplateFromCsar(VspDetails vspDetails,
+// byte[] uploadedFileData,
+// FileContentHandler contentMap,
+// Map<String, List<ErrorMessage>> uploadErrors,
+// String user){
+//
+// }
+
private HeatStructureTree getHeatStructureTree(VspDetails vspDetails,
FileContentHandler contentMap,
AnalyzedZipHeatFiles analyzedZipHeatFiles) {
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/impl/zusammen/VendorSoftwareProductInfoDaoZusammenImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/impl/zusammen/VendorSoftwareProductInfoDaoZusammenImpl.java
index eef90d4742..7ad7929ccb 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/impl/zusammen/VendorSoftwareProductInfoDaoZusammenImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/impl/zusammen/VendorSoftwareProductInfoDaoZusammenImpl.java
@@ -200,6 +200,8 @@ public class VendorSoftwareProductInfoDaoZusammenImpl implements VendorSoftwareP
info.addProperty(InfoPropertyName.featureGroups.name(), vspDetails.getFeatureGroups());
info.addProperty(InfoPropertyName.oldVersion.name(), vspDetails.getOldVersion());
info.addProperty(InfoPropertyName.onboardingMethod.name(), vspDetails.getOnboardingMethod());
+ info.addProperty(InfoPropertyName.obBoardingOrigin.name(), vspDetails.getOnboardingOrigin());
+ info.addProperty(InfoPropertyName.networkPackageName.name(), vspDetails.getNetworkPackageName());
}
private VspDetails mapInfoToVspDetails(String vspId, Version version, Info info,
@@ -215,6 +217,7 @@ public class VendorSoftwareProductInfoDaoZusammenImpl implements VendorSoftwareP
Version.valueOf(info.getProperty(InfoPropertyName.vendorVersion.name())));
vspDetails.setLicenseAgreement(info.getProperty(InfoPropertyName.licenseAgreement.name()));
vspDetails.setFeatureGroups(info.getProperty(InfoPropertyName.featureGroups.name()));
+
vspDetails.setWritetimeMicroSeconds(
modificationTime == null ? creationTime.getTime() : modificationTime.getTime());
vspDetails.setVersion(version);
@@ -223,7 +226,8 @@ public class VendorSoftwareProductInfoDaoZusammenImpl implements VendorSoftwareP
//Boolean oldVersion = ind == null || "true".equals( ind.toLowerCase());
vspDetails.setOldVersion(oldVersion);
vspDetails.setOnboardingMethod(info.getProperty(InfoPropertyName.onboardingMethod.name()));
-
+ vspDetails.setOnboardingOrigin(info.getProperty(InfoPropertyName.obBoardingOrigin.name()));
+ vspDetails.setNetworkPackageName(info.getProperty(InfoPropertyName.networkPackageName.name()));
return vspDetails;
}
@@ -239,7 +243,9 @@ public class VendorSoftwareProductInfoDaoZusammenImpl implements VendorSoftwareP
licenseAgreement,
featureGroups,
oldVersion,
- onboardingMethod
+ onboardingMethod,
+ obBoardingOrigin,
+ networkPackageName
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImpl.java
index 7d5d57dc37..c76b15d221 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImpl.java
@@ -79,12 +79,12 @@ import java.util.Set;
public class CompositionEntityDataManagerImpl implements CompositionEntityDataManager {
private static final String COMPOSITION_ENTITY_DATA_MANAGER_ERR =
- "COMPOSITION_ENTITY_DATA_MANAGER_ERR";
+ "COMPOSITION_ENTITY_DATA_MANAGER_ERR";
private static final String COMPOSITION_ENTITY_DATA_MANAGER_ERR_MSG =
- "Invalid input: %s may not be null";
+ "Invalid input: %s may not be null";
private static final Logger logger =
- LoggerFactory.getLogger(CompositionEntityDataManagerImpl.class);
+ LoggerFactory.getLogger(CompositionEntityDataManagerImpl.class);
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
private Map<CompositionEntityId, CompositionEntityData> entities = new HashMap<>();
@@ -132,27 +132,27 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
if (entity == null) {
throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
- .withId(COMPOSITION_ENTITY_DATA_MANAGER_ERR).withMessage(
- String.format(COMPOSITION_ENTITY_DATA_MANAGER_ERR_MSG, "composition entity"))
- .build());
+ new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
+ .withId(COMPOSITION_ENTITY_DATA_MANAGER_ERR).withMessage(
+ String.format(COMPOSITION_ENTITY_DATA_MANAGER_ERR_MSG, "composition entity"))
+ .build());
}
if (schemaTemplateContext == null) {
throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
- .withId(COMPOSITION_ENTITY_DATA_MANAGER_ERR).withMessage(
- String.format(COMPOSITION_ENTITY_DATA_MANAGER_ERR_MSG, "schema template context"))
- .build());
+ new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
+ .withId(COMPOSITION_ENTITY_DATA_MANAGER_ERR).withMessage(
+ String.format(COMPOSITION_ENTITY_DATA_MANAGER_ERR_MSG, "schema template context"))
+ .build());
}
CompositionEntityValidationData validationData =
- new CompositionEntityValidationData(entity.getType(), entity.getId());
+ new CompositionEntityValidationData(entity.getType(), entity.getId());
String json =
- schemaTemplateContext == SchemaTemplateContext.composition ? entity.getCompositionData()
- : entity.getQuestionnaireData();
+ schemaTemplateContext == SchemaTemplateContext.composition ? entity.getCompositionData()
+ : entity.getQuestionnaireData();
validationData.setErrors(JsonUtil.validate(
- json == null ? JsonUtil.object2Json(new Object()) : json,
- generateSchema(schemaTemplateContext, entity.getType(), schemaTemplateInput)));
+ json == null ? JsonUtil.object2Json(new Object()) : json,
+ generateSchema(schemaTemplateContext, entity.getType(), schemaTemplateInput)));
mdcDataDebugMessage.debugExitMessage(null);
return validationData;
@@ -168,13 +168,13 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
public void addEntity(CompositionEntity entity, SchemaTemplateInput schemaTemplateInput) {
if (entity == null) {
throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
- .withId(COMPOSITION_ENTITY_DATA_MANAGER_ERR).withMessage(
- String.format(COMPOSITION_ENTITY_DATA_MANAGER_ERR_MSG, "composition entity"))
- .build());
+ new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
+ .withId(COMPOSITION_ENTITY_DATA_MANAGER_ERR).withMessage(
+ String.format(COMPOSITION_ENTITY_DATA_MANAGER_ERR_MSG, "composition entity"))
+ .build());
}
entities.put(entity.getCompositionEntityId(),
- new CompositionEntityData(entity, schemaTemplateInput));
+ new CompositionEntityData(entity, schemaTemplateInput));
}
/**
@@ -204,10 +204,10 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
@Override
public void buildTrees() {
Map<CompositionEntityId, CompositionEntityValidationData> entitiesValidationData =
- new HashMap<>();
+ new HashMap<>();
entities.entrySet().forEach(
- entry -> addValidationDataEntity(entitiesValidationData, entry.getKey(),
- entry.getValue().entity));
+ entry -> addValidationDataEntity(entitiesValidationData, entry.getKey(),
+ entry.getValue().entity));
}
public Collection<CompositionEntityValidationData> getTrees() {
@@ -258,14 +258,14 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
}
Collection<CompositionEntityValidationData> subEntitiesValidationData =
- entity.getSubEntitiesValidationData();
+ entity.getSubEntitiesValidationData();
return !CollectionUtils.isEmpty(subEntitiesValidationData) &&
- checkForErrorsInChildren(subEntitiesValidationData);
+ checkForErrorsInChildren(subEntitiesValidationData);
}
private boolean checkForErrorsInChildren(
- Collection<CompositionEntityValidationData> subEntitiesValidationData) {
+ Collection<CompositionEntityValidationData> subEntitiesValidationData) {
boolean result = false;
for (CompositionEntityValidationData subEntity : subEntitiesValidationData) {
if (CollectionUtils.isNotEmpty(subEntity.getErrors())) {
@@ -359,10 +359,10 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
//component.setId(CommonMethods.nextUuId()); will be set by the dao
component.setQuestionnaireData(
- new JsonSchemaDataGenerator(
- generateSchema(SchemaTemplateContext.questionnaire, CompositionEntityType.component,
- null))
- .generateData());
+ new JsonSchemaDataGenerator(
+ generateSchema(SchemaTemplateContext.questionnaire, CompositionEntityType.component,
+ null))
+ .generateData());
componentDao.create(component);
@@ -376,9 +376,9 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
//nic.setId(CommonMethods.nextUuId()); will be set by the dao
nic.setQuestionnaireData(
- new JsonSchemaDataGenerator(
- generateSchema(SchemaTemplateContext.questionnaire, CompositionEntityType.nic, null))
- .generateData());
+ new JsonSchemaDataGenerator(
+ generateSchema(SchemaTemplateContext.questionnaire, CompositionEntityType.nic, null))
+ .generateData());
nicDao.create(nic);
@@ -414,7 +414,7 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
public void getEntityListWithErrors(CompositionEntityValidationData entity,
Set<CompositionEntityValidationData> compositionSet) {
Collection<CompositionEntityValidationData> childNodes =
- entity.getSubEntitiesValidationData();
+ entity.getSubEntitiesValidationData();
if (CollectionUtils.isEmpty(childNodes)) {
return;
@@ -432,7 +432,7 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
public void addNodeWithErrors(CompositionEntityValidationData node,
Set<CompositionEntityValidationData> entitiesWithErrors) {
CompositionEntityValidationData compositionNodeToAdd = new CompositionEntityValidationData(node
- .getEntityType(), node.getEntityId());
+ .getEntityType(), node.getEntityId());
compositionNodeToAdd.setErrors(node.getErrors());
compositionNodeToAdd.setSubEntitiesValidationData(null);
@@ -445,9 +445,9 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
private CompositionEntityData getCompositionEntityDataById(CompositionEntityValidationData
- entity) {
+ entity) {
for (Map.Entry<CompositionEntityId, CompositionEntityData> entityEntry : entities
- .entrySet()) {
+ .entrySet()) {
if (entityEntry.getKey().getId().equals(entity.getEntityId())) {
return entityEntry.getValue();
}
@@ -457,11 +457,11 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
private void updateValidationCompositionEntityName(Set<CompositionEntityValidationData>
- compositionSet) {
+ compositionSet) {
for (CompositionEntityValidationData entity : compositionSet) {
String compositionData = getCompositionDataAsString(entity);
if (entity.getEntityType().equals(CompositionEntityType.vsp) ||
- Objects.nonNull(compositionData)) {
+ Objects.nonNull(compositionData)) {
entity.setEntityName(getEntityNameByEntityType(compositionData, entity));
}
}
@@ -488,12 +488,16 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
Network network = JsonUtil.json2Object(compositionData, Network.class);
return network.getName();
+ case image:
+ Image image = JsonUtil.json2Object(compositionData, Image.class);
+ return image.getFileName();
+
case vsp:
CompositionEntityData vspEntity = getCompositionEntityDataById(entity);
VspQuestionnaireEntity vspQuestionnaireEntity = (VspQuestionnaireEntity) vspEntity.entity;
VspDetails vspDetails =
- vspInfoDao.get(new VspDetails(vspQuestionnaireEntity.getId(),
- vspQuestionnaireEntity.getVersion()));
+ vspInfoDao.get(new VspDetails(vspQuestionnaireEntity.getId(),
+ vspQuestionnaireEntity.getVersion()));
return vspDetails.getName();
}
@@ -509,7 +513,7 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
if (hasChildren(node)) {
Collection<CompositionEntityValidationData> subNodes =
- new ArrayList<>(node.getSubEntitiesValidationData());
+ new ArrayList<>(node.getSubEntitiesValidationData());
subNodes.forEach(subNode -> removeNodesWithoutErrors(subNode, node));
node.setSubEntitiesValidationData(subNodes);
@@ -538,14 +542,14 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
private void addValidationDataEntity(
- Map<CompositionEntityId, CompositionEntityValidationData> entitiesValidationData,
- CompositionEntityId entityId, CompositionEntity entity) {
+ Map<CompositionEntityId, CompositionEntityValidationData> entitiesValidationData,
+ CompositionEntityId entityId, CompositionEntity entity) {
if (entitiesValidationData.containsKey(entityId)) {
return;
}
CompositionEntityValidationData validationData =
- new CompositionEntityValidationData(entity.getType(), entity.getId());
+ new CompositionEntityValidationData(entity.getType(), entity.getId());
entitiesValidationData.put(entityId, validationData);
CompositionEntityId parentEntityId = entityId.getParentId();
@@ -573,32 +577,40 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
if (node.getSubEntitiesValidationData() != null) {
node.getSubEntitiesValidationData()
- .forEach(subNode -> addErrorsToTree(subNode, nodeId, errors));
+ .forEach(subNode -> addErrorsToTree(subNode, nodeId, errors));
}
}
private Collection<String> validateQuestionnaire(CompositionEntityData compositionEntityData) {
logger.debug(String.format("validateQuestionnaire start: " +
- "[entity.type]=%s, [entity.id]=%s, [entity.questionnaireString]=%s",
- compositionEntityData.entity.getType().name(),
- compositionEntityData.entity.getCompositionEntityId().toString(),
- compositionEntityData.entity.getQuestionnaireData()));
+ "[entity.type]=%s, [entity.id]=%s, [entity.questionnaireString]=%s",
+ compositionEntityData.entity.getType().name(),
+ compositionEntityData.entity.getCompositionEntityId().toString(),
+ compositionEntityData.entity.getQuestionnaireData()));
+
+ if(Objects.isNull(compositionEntityData.entity.getQuestionnaireData()) || !JsonUtil.isValidJson
+ (compositionEntityData.entity.getQuestionnaireData())){
+ List<String> errors = new ArrayList<>();
+ errors.add("Data is missing for the above " + compositionEntityData.entity.getType() +
+ ". Complete the mandatory fields and resubmit.");
+ return errors;
+ }
return JsonUtil.validate(
- compositionEntityData.entity.getQuestionnaireData() == null
- ? JsonUtil.object2Json(new Object())
- : compositionEntityData.entity.getQuestionnaireData(),
- getSchema(compositionEntityData.entity.getType(), SchemaTemplateContext.questionnaire,
- compositionEntityData.schemaTemplateInput));
+ compositionEntityData.entity.getQuestionnaireData() == null
+ ? JsonUtil.object2Json(new Object())
+ : compositionEntityData.entity.getQuestionnaireData(),
+ getSchema(compositionEntityData.entity.getType(), SchemaTemplateContext.questionnaire,
+ compositionEntityData.schemaTemplateInput));
}
private String getSchema(CompositionEntityType compositionEntityType,
SchemaTemplateContext schemaTemplateContext,
SchemaTemplateInput schemaTemplateInput) {
return schemaTemplateInput == null
- ? nonDynamicSchemas.computeIfAbsent(compositionEntityType,
- k -> generateSchema(schemaTemplateContext, compositionEntityType, null))
- : generateSchema(schemaTemplateContext, compositionEntityType, schemaTemplateInput);
+ ? nonDynamicSchemas.computeIfAbsent(compositionEntityType,
+ k -> generateSchema(schemaTemplateContext, compositionEntityType, null))
+ : generateSchema(schemaTemplateContext, compositionEntityType, schemaTemplateInput);
}
private static class CompositionEntityData {
@@ -619,7 +631,7 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
CompositionEntityType compositionEntityType,
SchemaTemplateInput schemaTemplateInput) {
return SchemaGenerator
- .generate(schemaTemplateContext, compositionEntityType, schemaTemplateInput);
+ .generate(schemaTemplateContext, compositionEntityType, schemaTemplateInput);
}
@Override
@@ -638,9 +650,9 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
image.setId(CommonMethods.nextUuId());
image.setQuestionnaireData(
- new JsonSchemaDataGenerator(SchemaGenerator
- .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.image, null))
- .generateData());
+ new JsonSchemaDataGenerator(SchemaGenerator
+ .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.image, null))
+ .generateData());
imageDao.create(image);
mdcDataDebugMessage.debugExitMessage(null, null);
@@ -650,23 +662,23 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
@Override
public ComputeEntity createCompute(ComputeEntity compute) {
mdcDataDebugMessage.debugEntryMessage("VSP id, component id", compute.getVspId(),
- compute.getComponentId());
+ compute.getComponentId());
compute.setId(CommonMethods.nextUuId());
compute.setQuestionnaireData(
- new JsonSchemaDataGenerator(SchemaGenerator
- .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.compute,
- null)).generateData());
+ new JsonSchemaDataGenerator(SchemaGenerator
+ .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.compute,
+ null)).generateData());
computeDao.create(compute);
mdcDataDebugMessage.debugExitMessage("VSP id, component id", compute.getVspId(),
- compute.getComponentId());
+ compute.getComponentId());
return compute;
}
public void saveComputesFlavorByComponent(String vspId, Version version, Component component, String
- componentId) {
+ componentId) {
if (CollectionUtils.isNotEmpty(component.getCompute())) {
for (ComputeData flavor : component.getCompute()) {
ComputeEntity computeEntity = new ComputeEntity(vspId, version, componentId, null);
@@ -677,7 +689,7 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
}
public void saveImagesByComponent(String vspId, Version version, Component component, String
- componentId) {
+ componentId) {
if (CollectionUtils.isNotEmpty(component.getImages())) {
for (Image img : component.getImages()) {
ImageEntity imageEntity = new ImageEntity(vspId, version, componentId, null);
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/CandidateServiceImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/CandidateServiceImpl.java
index 6ccece1e76..e5f1a4c3ac 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/CandidateServiceImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/CandidateServiceImpl.java
@@ -23,6 +23,7 @@ package org.openecomp.sdc.vendorsoftwareproduct.services.impl.filedatastructurem
import org.apache.commons.collections4.CollectionUtils;
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.errors.CoreException;
import org.openecomp.sdc.common.errors.ErrorCategory;
import org.openecomp.sdc.common.errors.ErrorCode;
@@ -89,17 +90,17 @@ public class CandidateServiceImpl implements CandidateService {
}
@Override
- public Optional<ErrorMessage> validateNonEmptyFileToUpload(InputStream heatFileToUpload) {
+ public Optional<ErrorMessage> validateNonEmptyFileToUpload(InputStream fileToUpload) {
mdcDataDebugMessage.debugEntryMessage(null);
- if (Objects.isNull(heatFileToUpload)) {
+ if (Objects.isNull(fileToUpload)) {
return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
} else {
try {
- int available = heatFileToUpload.available();
+ int available = fileToUpload.available();
if (available == 0) {
mdcDataDebugMessage.debugExitMessage(null);
return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
@@ -321,10 +322,7 @@ public class CandidateServiceImpl implements CandidateService {
public void updateCandidateUploadData(OrchestrationTemplateCandidateData uploadData,
String itemId) {
mdcDataDebugMessage.debugEntryMessage(null);
-
- //vendorSoftwareProductDao.updateCandidateUploadData(uploadData);
orchestrationTemplateCandidateDataDao.update(itemId, uploadData);
-
mdcDataDebugMessage.debugExitMessage(null);
}
@@ -393,11 +391,12 @@ public class CandidateServiceImpl implements CandidateService {
public Optional<ByteArrayInputStream> fetchZipFileByteArrayInputStream(String vspId,
OrchestrationTemplateCandidateData candidateDataEntity,
String manifest,
+ OnboardingTypesEnum type,
Map<String, List<ErrorMessage>> uploadErrors) {
byte[] file;
ByteArrayInputStream byteArrayInputStream = null;
try {
- file = replaceManifestInZip(candidateDataEntity.getContentData(), manifest, vspId);
+ file = replaceManifestInZip(candidateDataEntity.getContentData(), manifest, vspId, type);
byteArrayInputStream = new ByteArrayInputStream(
Objects.isNull(file) ? candidateDataEntity.getContentData().array()
: file);
@@ -413,7 +412,8 @@ public class CandidateServiceImpl implements CandidateService {
}
@Override
- public byte[] replaceManifestInZip(ByteBuffer contentData, String manifest, String vspId)
+ public byte[] replaceManifestInZip(ByteBuffer contentData, String manifest, String vspId,
+ OnboardingTypesEnum type)
throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -433,12 +433,12 @@ public class CandidateServiceImpl implements CandidateService {
}
} else {
manifestWritten = true;
- writeManifest(manifest, zos);
+ writeManifest(manifest, type, zos);
}
zos.closeEntry();
}
if (!manifestWritten) {
- writeManifest(manifest, zos);
+ writeManifest(manifest, type, zos);
zos.closeEntry();
}
}
@@ -451,7 +451,14 @@ public class CandidateServiceImpl implements CandidateService {
return candidateServiceValidator.validateFileDataStructure(filesDataStructure);
}
- private void writeManifest(String manifest, ZipOutputStream zos) throws IOException {
+ private void writeManifest(String manifest,
+ OnboardingTypesEnum type,
+ ZipOutputStream zos) throws IOException {
+
+ if(isManifestNeedsToGetWritten(type)){
+ return;
+ }
+
zos.putNextEntry(new ZipEntry(SdcCommon.MANIFEST_NAME));
try (InputStream manifestStream = new ByteArrayInputStream(
manifest.getBytes(StandardCharsets.UTF_8))) {
@@ -463,6 +470,10 @@ public class CandidateServiceImpl implements CandidateService {
}
}
+ private boolean isManifestNeedsToGetWritten(OnboardingTypesEnum type) {
+ return type.equals(OnboardingTypesEnum.CSAR);
+ }
+
private void handleArtifactsFromTree(HeatStructureTree tree, FilesDataStructure structure) {
if (Objects.isNull(tree) || Objects.isNull(tree.getArtifacts())) {
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/pom.xml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/pom.xml
new file mode 100644
index 0000000000..faf890f672
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/pom.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-tosca-converter-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-tosca-converter-api</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ServiceTemplateReaderService.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ServiceTemplateReaderService.java
new file mode 100644
index 0000000000..09c823ce7e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ServiceTemplateReaderService.java
@@ -0,0 +1,24 @@
+package org.openecomp.core.converter;
+
+import java.util.Map;
+
+public interface ServiceTemplateReaderService {
+
+ Map<String, Object> readServiceTemplate(byte[] serivceTemplateContent);
+
+ Object getMetadata();
+
+ Object getToscaVersion();
+
+ Object getNodeTypes();
+
+ Object getTopologyTemplate();
+
+ Map<String, Object> getNodeTemplates();
+
+ Map<String, Object> getInputs();
+
+ Map<String, Object> getOutputs();
+
+ Map<String, Object> getSubstitutionMappings();
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ToscaConverter.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ToscaConverter.java
new file mode 100644
index 0000000000..543d32347f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/ToscaConverter.java
@@ -0,0 +1,12 @@
+package org.openecomp.core.converter;
+
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+
+import java.io.IOException;
+
+public interface ToscaConverter {
+
+ ToscaServiceModel convert(FileContentHandler fileContentHandler)
+ throws IOException;
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/api/ToscaConverterManager.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/api/ToscaConverterManager.java
new file mode 100644
index 0000000000..1cf010c1b5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/api/ToscaConverterManager.java
@@ -0,0 +1,9 @@
+package org.openecomp.core.converter.api;
+
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+
+public interface ToscaConverterManager {
+
+ ToscaServiceModel convert(String csarName, FileContentHandler fileContentHandler);
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/Constants.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/Constants.java
new file mode 100644
index 0000000000..6f7e6be8af
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/Constants.java
@@ -0,0 +1,45 @@
+package org.openecomp.core.converter.datatypes;
+
+import java.io.File;
+
+public class Constants {
+ public static final String mainStName = "MainServiceTemplate.yaml";
+ public static final String globalStName = "GlobalSubstitutionTypesServiceTemplate.yaml";
+ public static final String manifestFileName = "MainServiceTemplate.mf";
+ public static final String definitionsDir = "Definitions/";
+ public static final String metadataFile = "TOSCA-Metadata/TOSCA.meta";
+
+
+ public static final String definitionVersion = "tosca_definitions_version";
+ private static final String DEFAULT_NAMESPACE = "tosca_default_namespace";
+ private static final String TEMPLATE_NAME = "template_name";
+ public static final String topologyTemplate = "topology_template";
+ private static final String TEMPLATE_AUTHOR = "template_author";
+ private static final String TEMPLATE_VERSION = "template_version";
+ private static final String DESCRIPTION = "description";
+ private static final String IMPORTS = "imports";
+ private static final String DSL_DEFINITIONS = "dsl_definitions";
+ public static final String nodeType = "node_type";
+ public static final String nodeTypes = "node_types";
+ private static final String RELATIONSHIP_TYPES = "relationship_types";
+ private static final String RELATIONSHIP_TEMPLATES = "relationship_templates";
+ private static final String CAPABILITY_TYPES = "capability_types";
+ private static final String ARTIFACT_TYPES = "artifact_types";
+ private static final String DATA_TYPES = "data_types";
+ private static final String INTERFACE_TYPES = "interface_types";
+ private static final String POLICY_TYPES = "policy_types";
+ private static final String GROUP_TYPES = "group_types";
+ private static final String REPOSITORIES = "repositories";
+ public static final String metadata = "metadata";
+ public static final String nodeTemplates = "node_templates";
+ public static final String inputs = "inputs";
+ public static final String outputs = "outputs";
+ public static final String substitutionMappings = "substitution_mappings";
+ public static final String capabilities = "capabilities";
+ public static final String requirements = "requirements";
+
+ public static final String openecompHeatIndex = "openecomp_heat_index";
+ public static final String globalSubstitution = "GlobalSubstitutionTypes";
+
+ public static final String externalFilesFolder = "External" + File.separator;
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/CsarFileTypes.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/CsarFileTypes.java
new file mode 100644
index 0000000000..323bd8a5fb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/datatypes/CsarFileTypes.java
@@ -0,0 +1,9 @@
+package org.openecomp.core.converter.datatypes;
+
+public enum CsarFileTypes {
+ mainServiceTemplate,
+ globalServiceTemplate,
+ externalFile,
+ toscaMetadata,
+ definitionsFile,;
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/factory/ToscaConverterFactory.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/factory/ToscaConverterFactory.java
new file mode 100644
index 0000000000..7506759d25
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/main/java/org/openecomp/core/converter/factory/ToscaConverterFactory.java
@@ -0,0 +1,12 @@
+package org.openecomp.core.converter.factory;
+
+import org.openecomp.core.converter.ToscaConverter;
+import org.openecomp.core.factory.api.AbstractComponentFactory;
+import org.openecomp.core.factory.api.AbstractFactory;
+
+public abstract class ToscaConverterFactory extends AbstractComponentFactory<ToscaConverter> {
+
+ public static ToscaConverterFactory getInstance(){
+ return AbstractFactory.getInstance(ToscaConverterFactory.class);
+ }
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/resources/factoryConfiguration.json b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/resources/factoryConfiguration.json
new file mode 100644
index 0000000000..d9f4ff3cbd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-api/src/resources/factoryConfiguration.json
@@ -0,0 +1,3 @@
+{
+ "org.openecomp.core.converter.factory.ToscaConverterFactory" : "org.openecomp.core.impl.factory.ToscaConverterFactoryImpl"
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/pom.xml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/pom.xml
new file mode 100644
index 0000000000..39f02becf8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/pom.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-tosca-converter-api</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.jtosca</groupId>
+ <artifactId>jtosca</artifactId>
+ <version>1.1.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-core</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-tosca-converter-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-tosca-converter-core</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/GlobalSubstitutionServiceTemplate.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/GlobalSubstitutionServiceTemplate.java
new file mode 100644
index 0000000000..778445c513
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/GlobalSubstitutionServiceTemplate.java
@@ -0,0 +1,87 @@
+package org.openecomp.core.impl;
+
+import org.apache.commons.collections4.MapUtils;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.openecomp.sdc.tosca.datatypes.model.Import;
+import org.openecomp.sdc.tosca.datatypes.model.NodeType;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+
+public class GlobalSubstitutionServiceTemplate extends ServiceTemplate {
+ private static final Logger logger = LoggerFactory.getLogger(ServiceTemplate.class);
+
+ public static final String GLOBAL_SUBSTITUTION_SERVICE_FILE_NAME =
+ "GlobalSubstitutionTypesServiceTemplate.yaml";
+ public static final String TEMPLATE_NAME_PROPERTY = "template_name";
+ public static final String DEFININTION_VERSION = "tosca_simple_yaml_1_0_0";
+ public static final String HEAT_INDEX = "openecomp_heat_index";
+ private static final Map<String, ServiceTemplate> globalServiceTemplates =
+ GlobalTypesGenerator.getGlobalTypesServiceTemplate();
+
+ public GlobalSubstitutionServiceTemplate() {
+ super();
+ init();
+ }
+
+
+ public void appendNodes(Map<String, NodeType> nodes) {
+ Optional<Map<String, NodeType>> nodeTypesToAdd =
+ removeExistingGlobalTypes(nodes);
+
+ nodeTypesToAdd.ifPresent(nodeTypes -> getNode_types().putAll(nodeTypes));
+ }
+
+ public void init() {
+ writeDefinitionSection();
+ writeMetadataSection();
+ writeImportsSection();
+ setNode_types(new HashMap<>());
+ }
+
+ private void writeImportsSection() {
+ List<Map<String, Import>> imports = new ArrayList<>();
+ Map<String, Import> stringImportMap = new HashMap<>();
+ imports.add(stringImportMap);
+ setImports(imports);
+ Import imprtObj = new Import();
+ imprtObj.setFile("openecomp-heat/_index.yml");
+ stringImportMap.put("openecomp_heat_index", imprtObj);
+ }
+
+
+ private void writeMetadataSection() {
+ Map<String, String> metadata = new HashMap<>();
+ metadata.put(TEMPLATE_NAME_PROPERTY, "GlobalSubstitutionTypes");
+ setMetadata(metadata);
+ }
+
+ private void writeDefinitionSection() {
+ setTosca_definitions_version(DEFININTION_VERSION);
+ }
+
+ public Optional<Map<String, NodeType>> removeExistingGlobalTypes(Map<String, NodeType> nodes){
+ Map<String, NodeType> nodeTypesToAdd = new HashMap<>();
+ ServiceTemplate serviceTemplate = globalServiceTemplates.get("openecomp/nodes.yml");
+
+ if(Objects.isNull(serviceTemplate) || MapUtils.isEmpty(serviceTemplate.getNode_types())){
+ return Optional.of(nodes);
+ }
+
+ Map<String, NodeType> globalNodeTypes = serviceTemplate.getNode_types();
+ for(Map.Entry<String, NodeType> nodeTypeEntry : nodes.entrySet()){
+ if(!globalNodeTypes.containsKey(nodeTypeEntry.getKey())){
+ nodeTypesToAdd.put(nodeTypeEntry.getKey(), nodeTypeEntry.getValue());
+ }
+ }
+
+ return Optional.of(nodeTypesToAdd);
+ }
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterImpl.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterImpl.java
new file mode 100644
index 0000000000..69fa33aae7
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterImpl.java
@@ -0,0 +1,451 @@
+package org.openecomp.core.impl;
+
+import org.apache.commons.collections.MapUtils;
+import org.openecomp.core.converter.ServiceTemplateReaderService;
+import org.openecomp.core.converter.ToscaConverter;
+import org.openecomp.core.converter.datatypes.Constants;
+import org.openecomp.core.converter.datatypes.CsarFileTypes;
+import org.openecomp.core.impl.services.ServiceTemplateReaderServiceImpl;
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.*;
+import org.openecomp.sdc.tosca.services.DataModelUtil;
+import org.openecomp.sdc.tosca.services.ToscaUtil;
+import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
+import org.yaml.snakeyaml.error.YAMLException;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
+import java.util.jar.Manifest;
+import java.util.regex.Pattern;
+
+import static org.openecomp.core.converter.datatypes.Constants.*;
+import static org.openecomp.core.impl.GlobalSubstitutionServiceTemplate.GLOBAL_SUBSTITUTION_SERVICE_FILE_NAME;
+
+public class ToscaConverterImpl implements ToscaConverter {
+
+ public ToscaConverterImpl() {
+
+ }
+
+ @Override
+ public ToscaServiceModel convert(FileContentHandler fileContentHandler)
+ throws IOException {
+ Map<String, byte[]> csarFiles = new HashMap<>(fileContentHandler.getFiles());
+ ToscaServiceModel toscaServiceModel = new ToscaServiceModel();
+ Map<String, ServiceTemplate> serviceTemplates = new HashMap<>();
+ FileContentHandler artifacts = new FileContentHandler();
+ GlobalSubstitutionServiceTemplate gsst = new GlobalSubstitutionServiceTemplate();
+ for (Map.Entry<String, byte[]> fileEntry : csarFiles.entrySet()) {
+ CsarFileTypes fileType = getFileType(fileEntry.getKey());
+ switch (fileType) {
+ case mainServiceTemplate:
+ handleServiceTemplate(mainStName, fileEntry.getKey(), csarFiles, serviceTemplates);
+ break;
+
+ case globalServiceTemplate:
+ handleServiceTemplate(globalStName, fileEntry.getKey(), csarFiles, serviceTemplates);
+ break;
+
+ case externalFile:
+ artifacts.addFile(fileEntry.getKey(), fileEntry.getValue());
+ break;
+
+ case definitionsFile:
+ handleDefintionTemplate(fileEntry.getKey(), csarFiles, gsst);
+ break;
+ }
+ }
+ handleMetadataFile(csarFiles);
+ updateToscaServiceModel(toscaServiceModel, serviceTemplates, artifacts, gsst, csarFiles);
+ return toscaServiceModel;
+ }
+
+ private void handleMetadataFile(Map<String, byte[]> csarFiles) {
+ byte[] bytes = csarFiles.remove(metadataFile);
+ if (bytes != null) {
+ csarFiles.put(metadataFile + ".original", bytes);
+ }
+ }
+
+ private void handleDefintionTemplate(String key, Map<String, byte[]> csarFiles,
+ GlobalSubstitutionServiceTemplate gsst) {
+ try {
+ ServiceTemplateReaderService readerService = new ServiceTemplateReaderServiceImpl(csarFiles.get(key));
+ if (readerService == null) {
+ return;
+ }
+ Object nodeTypes = readerService.getNodeTypes();
+ if (nodeTypes instanceof Map) {
+ Map<String, NodeType> nodeTypeMap = (Map<String, NodeType>) nodeTypes;
+ gsst.appendNodes(nodeTypeMap);
+ }
+ } catch (YAMLException ye) {
+ throw new CoreException(new ErrorCode.ErrorCodeBuilder()
+ .withMessage("Invalid YAML content in file " + key + ". reason - "
+ + ye.getMessage())
+ .withCategory(ErrorCategory.APPLICATION).build());
+ }
+ }
+
+ private void updateToscaServiceModel(ToscaServiceModel toscaServiceModel,
+ Map<String, ServiceTemplate> serviceTemplates,
+ FileContentHandler externalFilesHandler,
+ GlobalSubstitutionServiceTemplate globalSubstitutionServiceTemplate,
+ Map<String, byte[]> csarFiles) {
+ Collection<ServiceTemplate> globalServiceTemplates =
+ GlobalTypesGenerator.getGlobalTypesServiceTemplate().values();
+ addGlobalServiceTemplates(globalServiceTemplates, serviceTemplates);
+ toscaServiceModel.setEntryDefinitionServiceTemplate(mainStName);
+ toscaServiceModel.setServiceTemplates(serviceTemplates);
+ externalFilesHandler.addFile(metadataFile + ".original",
+ csarFiles.get(metadataFile + ".original"));
+ toscaServiceModel.setArtifactFiles(externalFilesHandler);
+
+ if(MapUtils.isNotEmpty(globalSubstitutionServiceTemplate.getNode_types())) {
+ serviceTemplates
+ .put(GLOBAL_SUBSTITUTION_SERVICE_FILE_NAME, globalSubstitutionServiceTemplate);
+ }
+ }
+
+ private void addGlobalServiceTemplates(Collection<ServiceTemplate> globalServiceTemplates,
+ Map<String, ServiceTemplate> serviceTemplates) {
+ for (ServiceTemplate serviceTemplate : globalServiceTemplates) {
+ serviceTemplates.put(ToscaUtil.getServiceTemplateFileName(serviceTemplate), serviceTemplate);
+ }
+ }
+
+ private void handleServiceTemplate(String serviceTemplateName,
+ String fileName, Map<String, byte[]> csarFiles,
+ Map<String, ServiceTemplate> serviceTemplates) {
+ Optional<ServiceTemplate> serviceTemplate =
+ getServiceTemplateFromCsar(fileName, csarFiles);
+ serviceTemplate.ifPresent(
+ serviceTemplate1 -> addServiceTemplate(serviceTemplateName, serviceTemplate1,
+ serviceTemplates));
+ }
+
+ private void addServiceTemplate(String serviceTemplateName,
+ ServiceTemplate serviceTemplate,
+ Map<String, ServiceTemplate> serviceTemplates) {
+ serviceTemplates.put(serviceTemplateName, serviceTemplate);
+ }
+
+ private Optional<byte[]> getManifestContent(Map<String, byte[]> csarFiles) {
+ for (Map.Entry<String, byte[]> csarFileEntry : csarFiles.entrySet()) {
+ if (csarFileEntry.getKey().contains(manifestFileName)) {
+ return Optional.of(csarFileEntry.getValue());
+ }
+ }
+
+ return Optional.empty();
+ }
+
+ private Optional<ServiceTemplate> getServiceTemplateFromCsar(String fileName,
+ Map<String, byte[]> csarFiles) {
+ byte[] fileContent = csarFiles.get(fileName);
+ ServiceTemplate serviceTemplate = convertServiceTemplate(fileName, fileContent);
+
+ return Optional.of(serviceTemplate);
+ }
+
+ private ServiceTemplate convertServiceTemplate(String serviceTemplateName,
+ byte[] fileContent) {
+ ServiceTemplate serviceTemplate = new ServiceTemplate();
+ try {
+ ServiceTemplateReaderService readerService =
+ new ServiceTemplateReaderServiceImpl(fileContent);
+ convertMetadata(serviceTemplateName, serviceTemplate, readerService);
+ convertToscaVersion(serviceTemplate, readerService);
+ convertImports(serviceTemplate);
+ convertNodeTypes(serviceTemplate, readerService);
+ convertTopologyTemplate(serviceTemplate, readerService);
+
+ } catch (YAMLException ye) {
+ throw new CoreException(new ErrorCode.ErrorCodeBuilder()
+ .withMessage("Invalid YAML content in file" + serviceTemplateName + ". reason - "
+ + ye.getMessage())
+ .withCategory(ErrorCategory.APPLICATION).build());
+ }
+
+
+ return serviceTemplate;
+ }
+
+ private void convertToscaVersion(ServiceTemplate serviceTemplate,
+ ServiceTemplateReaderService readerService) {
+ Object toscaVersion = readerService.getToscaVersion();
+ serviceTemplate.setTosca_definitions_version((String) toscaVersion);
+ }
+
+ private void convertImports(ServiceTemplate serviceTemplate) {
+ serviceTemplate.setImports(new ArrayList<>());
+ serviceTemplate.getImports()
+ .add(createImportMap(openecompHeatIndex, "openecomp-heat/_index.yml"));
+ serviceTemplate.getImports().add(createImportMap(globalSubstitution, globalStName));
+
+ }
+
+ private Map<String, Import> createImportMap(String key, String fileName) {
+ Map<String, Import> importMap = new HashMap<>();
+ Import anImport = new Import();
+ anImport.setFile(fileName);
+ importMap.put(key, anImport);
+
+ return importMap;
+ }
+
+ private void convertMetadata(String serviceTemplateName,
+ ServiceTemplate serviceTemplate,
+ ServiceTemplateReaderService readerService) {
+ Map<String, Object> metadataToConvert = (Map<String, Object>) readerService.getMetadata();
+ Map<String, String> finalMetadata = new HashMap<>();
+
+ if (MapUtils.isNotEmpty(metadataToConvert)) {
+ for (Map.Entry<String, Object> metadataEntry : metadataToConvert.entrySet()) {
+ if (Objects.isNull(metadataEntry.getValue()) ||
+ !(metadataEntry.getValue() instanceof String)) {
+ continue;
+ }
+ finalMetadata.put(metadataEntry.getKey(), (String) metadataEntry.getValue());
+ }
+ }
+
+ finalMetadata.put("template_name", getTemplateNameFromStName(serviceTemplateName));
+ serviceTemplate.setMetadata(finalMetadata);
+ }
+
+ private void convertNodeTypes(ServiceTemplate serviceTemplate, ServiceTemplateReaderService readerService) {
+ Map<String, Object> nodeTypes = (Map<String, Object>) readerService.getNodeTypes();
+ if (MapUtils.isEmpty(nodeTypes)) {
+ return;
+ }
+
+ for (Map.Entry<String, Object> nodeTypeEntry : nodeTypes.entrySet()) {
+ DataModelUtil
+ .addNodeType(serviceTemplate, nodeTypeEntry.getKey(),
+ (NodeType) createObjectFromClass(nodeTypeEntry.getKey(), nodeTypeEntry.getValue(),
+ NodeType.class));
+ }
+ }
+
+ private void convertTopologyTemplate(ServiceTemplate serviceTemplate,
+ ServiceTemplateReaderService readerService) {
+
+ convertInputs(serviceTemplate, readerService);
+ convertNodeTemplates(serviceTemplate, readerService);
+ convertOutputs(serviceTemplate, readerService);
+ convertSubstitutionMappings(serviceTemplate, readerService);
+ }
+
+ private void convertInputs(ServiceTemplate serviceTemplate,
+ ServiceTemplateReaderService readerService) {
+ Map<String, Object> inputs = readerService.getInputs();
+ addInputsOrOutputsToServiceTemplate(serviceTemplate, inputs, Constants.inputs);
+ }
+
+ private void convertOutputs(ServiceTemplate serviceTemplate,
+ ServiceTemplateReaderService readerService) {
+ Map<String, Object> outputs = readerService.getOutputs();
+ addInputsOrOutputsToServiceTemplate(serviceTemplate, outputs, Constants.outputs);
+ }
+
+ private void addInputsOrOutputsToServiceTemplate(ServiceTemplate serviceTemplate,
+ Map<String, Object> mapToConvert,
+ String inputsOrOutputs) {
+ if (MapUtils.isEmpty(mapToConvert)) {
+ return;
+ }
+
+ for (Map.Entry<String, Object> entry : mapToConvert.entrySet()) {
+ ParameterDefinition parameterDefinition =
+ (ParameterDefinition) createObjectFromClass(
+ entry.getKey(), entry.getValue(), ParameterDefinition.class);
+ addToServiceTemplateAccordingToSection(
+ serviceTemplate, inputsOrOutputs, entry.getKey(), parameterDefinition);
+ }
+ }
+
+ private void addToServiceTemplateAccordingToSection(ServiceTemplate serviceTemplate,
+ String inputsOrOutputs,
+ String parameterId,
+ ParameterDefinition parameterDefinition) {
+ switch (inputsOrOutputs) {
+ case inputs:
+ DataModelUtil
+ .addInputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
+ break;
+ case outputs:
+ DataModelUtil
+ .addOutputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
+ }
+ }
+
+ private void convertNodeTemplates(ServiceTemplate serviceTemplate,
+ ServiceTemplateReaderService readerService) {
+ Map<String, Object> nodeTemplates = readerService.getNodeTemplates();
+ if (MapUtils.isEmpty(nodeTemplates)) {
+ return;
+ }
+
+ for (Map.Entry<String, Object> nodeTemplateEntry : nodeTemplates.entrySet()) {
+ NodeTemplate nodeTemplate = convertNodeTemplate(nodeTemplateEntry.getValue());
+ DataModelUtil.addNodeTemplate(serviceTemplate, nodeTemplateEntry.getKey(), nodeTemplate);
+ }
+ }
+
+ private void convertSubstitutionMappings(ServiceTemplate serviceTemplate,
+ ServiceTemplateReaderService readerService) {
+ Map<String, Object> substitutionMappings = readerService.getSubstitutionMappings();
+ if (MapUtils.isEmpty(substitutionMappings)) {
+ return;
+ }
+ SubstitutionMapping substitutionMapping = convertSubstitutionMappings(substitutionMappings);
+ DataModelUtil.addSubstitutionMapping(serviceTemplate, substitutionMapping);
+ }
+
+ private SubstitutionMapping convertSubstitutionMappings(Map<String, Object> substitutionMappings) {
+ SubstitutionMapping substitutionMapping = new SubstitutionMapping();
+
+ substitutionMapping.setNode_type((String) substitutionMappings.get(nodeType));
+ substitutionMapping.setCapabilities(
+ convertSubstitutionMappingsSections((Map<String, Object>) substitutionMappings.get(capabilities)));
+ substitutionMapping.setRequirements(
+ convertSubstitutionMappingsSections((Map<String, Object>) substitutionMappings.get(requirements)));
+
+ return substitutionMapping;
+ }
+
+ private Map<String, List<String>> convertSubstitutionMappingsSections(
+ Map<String, Object> sectionToConvert) {
+ Map<String, List<String>> convertedSection = new HashMap<>();
+ if (MapUtils.isEmpty(sectionToConvert)) {
+ return null;
+ }
+
+ for (Map.Entry<String, Object> entry : sectionToConvert.entrySet()) {
+ if (entry.getValue() instanceof List) {
+ convertedSection.put(entry.getKey(), (List<String>) entry.getValue());
+ }
+ }
+
+ return convertedSection;
+ }
+
+ private CsarFileTypes getFileType(String fileName) {
+ if (isMainServiceTemplate(fileName)) {
+ return CsarFileTypes.mainServiceTemplate;
+ } else if (isGlobalServiceTemplate(fileName)) {
+ return CsarFileTypes.globalServiceTemplate;
+ } else if (isDefinitions(fileName)) {
+ return CsarFileTypes.definitionsFile;
+ } else if (isMetadataFile(metadataFile)) {
+ return CsarFileTypes.toscaMetadata;
+ }
+ return CsarFileTypes.externalFile;
+ }
+
+ private Optional<Manifest> getCsarManifest(Map<String, byte[]> csarFiles) throws IOException {
+ Optional<byte[]> manifestContent = getManifestContent(csarFiles);
+
+ if (manifestContent.isPresent()) {
+ ByteArrayInputStream byteInputStream = new ByteArrayInputStream(manifestContent.get());
+
+ return Optional.of(new Manifest(byteInputStream));
+ }
+
+ return Optional.empty();
+ }
+
+ private NodeTemplate convertNodeTemplate(Object candidateNodeTemplate) {
+ NodeTemplate nodeTemplate = new NodeTemplate();
+
+ Map<String, Object> nodeTemplateAsMap = (Map<String, Object>) candidateNodeTemplate;
+ nodeTemplate.setArtifacts((Map<String, ArtifactDefinition>) nodeTemplateAsMap.get("artifacts"));
+ nodeTemplate.setAttributes((Map<String, Object>) nodeTemplateAsMap.get("attributes"));
+ nodeTemplate.setCopy((String) nodeTemplateAsMap.get("copy"));
+ nodeTemplate.setDescription((String) nodeTemplateAsMap.get("description"));
+ nodeTemplate.setDirectives((List<String>) nodeTemplateAsMap.get("directives"));
+ nodeTemplate.setInterfaces(
+ (Map<String, InterfaceDefinition>) nodeTemplateAsMap.get("interfaces"));
+ nodeTemplate.setNode_filter((NodeFilter) nodeTemplateAsMap.get("node_filter"));
+ nodeTemplate.setProperties((Map<String, Object>) nodeTemplateAsMap.get("properties"));
+ nodeTemplate.setRequirements(
+ (List<Map<String, RequirementAssignment>>) nodeTemplateAsMap.get("requirements"));
+ nodeTemplate.setType((String) nodeTemplateAsMap.get("type"));
+ nodeTemplate.setCapabilities(
+ convertCapabilities((Map<String, Object>) nodeTemplateAsMap.get("capabilities")));
+
+ return nodeTemplate;
+ }
+
+ private List<Map<String, CapabilityAssignment>> convertCapabilities(Map<String, Object> capabilities) {
+ List<Map<String, CapabilityAssignment>> convertedCapabilities = new ArrayList<>();
+ if (MapUtils.isEmpty(capabilities)) {
+ return null;
+ }
+ for (Map.Entry<String, Object> capabilityAssignmentEntry : capabilities.entrySet()) {
+ Map<String, CapabilityAssignment> tempMap = new HashMap<>();
+ tempMap.put(capabilityAssignmentEntry.getKey(),
+ (CapabilityAssignment) createObjectFromClass
+ (capabilityAssignmentEntry.getKey(), capabilityAssignmentEntry.getValue(), CapabilityAssignment.class));
+ convertedCapabilities.add(tempMap);
+ }
+ return convertedCapabilities;
+ }
+
+ private Object createObjectFromClass(String nodeTypeId,
+ Object objectCandidate,
+ Class classToCreate) {
+ try {
+ return JsonUtil.json2Object(objectCandidate.toString(), classToCreate);
+ } catch (Exception e) {
+ //todo - return error to user?
+ throw new CoreException(new ErrorCode.ErrorCodeBuilder()
+ .withCategory(ErrorCategory.APPLICATION)
+ .withMessage("Can't create Node Type from " + nodeTypeId).build());
+ }
+ }
+
+ private boolean isMainServiceTemplate(String fileName) {
+ return fileName.endsWith(mainStName);
+ }
+
+ private boolean isMetadataFile(String fileName) {
+ return fileName.equals(metadataFile);
+ }
+
+ private boolean isGlobalServiceTemplate(String fileName) {
+ return fileName.endsWith(globalStName);
+ }
+
+ private boolean isDefinitions(String fileName) {
+ return fileName.startsWith(definitionsDir);
+ }
+
+ private String getTemplateNameFromStName(String serviceTemplateName) {
+ String fileNameWithoutDirectories;
+ fileNameWithoutDirectories = getFileNameWithoutDirectories(serviceTemplateName);
+ return fileNameWithoutDirectories.split("ServiceTemplate")[0];
+ }
+
+ private String getFileNameWithoutDirectories(String serviceTemplateName) {
+ String fileNameWithoutDirectories;
+ if (serviceTemplateName.contains("/")) {
+ String[] split = serviceTemplateName.split("/");
+ fileNameWithoutDirectories = split[split.length - 1];
+ } else if (serviceTemplateName.contains(File.separator)) {
+ String[] split = serviceTemplateName.split(Pattern.quote(File.separator));
+ fileNameWithoutDirectories = split[split.length - 1];
+ } else {
+ fileNameWithoutDirectories = serviceTemplateName;
+ }
+ return fileNameWithoutDirectories;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterManagerImpl.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterManagerImpl.java
new file mode 100644
index 0000000000..520e41817e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterManagerImpl.java
@@ -0,0 +1,49 @@
+package org.openecomp.core.impl;
+
+import org.openecomp.core.converter.ToscaConverter;
+import org.openecomp.core.converter.api.ToscaConverterManager;
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class ToscaConverterManagerImpl implements ToscaConverterManager {
+
+ private static List<ToscaConverter> toscaConverters;
+ private static final String toscaConverterFileName = "ToscaConverters.json";
+
+ static {
+ toscaConverters = getConvertersList();
+ }
+
+ @Override
+ public ToscaServiceModel convert(String csarName, FileContentHandler fileContentHandler) {
+ return null;
+ }
+
+ private static List<ToscaConverter> getConvertersList(){
+ List<ToscaConverter> toscaConvertersList = new ArrayList<>();
+ Map<String, String> convertersMap = FileUtils.readViaInputStream(toscaConverterFileName,
+ stream -> JsonUtil.json2Object(stream, Map.class));
+ return getToscaConvertersList(toscaConvertersList, convertersMap);
+ }
+
+ private static List<ToscaConverter> getToscaConvertersList(
+ List<ToscaConverter> toscaConvertersList, Map<String, String> convertersMap) {
+ for(String implClassName : convertersMap.values()){
+ try{
+ Class<?> clazz = Class.forName(implClassName);
+ Constructor<?> constructor = clazz.getConstructor();
+ toscaConvertersList.add((ToscaConverter) constructor.newInstance());
+ }catch (Exception e){
+ continue;
+ }
+ }
+ return toscaConvertersList;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/factory/ToscaConverterFactoryImpl.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/factory/ToscaConverterFactoryImpl.java
new file mode 100644
index 0000000000..e04cd239c9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/factory/ToscaConverterFactoryImpl.java
@@ -0,0 +1,12 @@
+package org.openecomp.core.impl.factory;
+
+import org.openecomp.core.converter.ToscaConverter;
+import org.openecomp.core.converter.factory.ToscaConverterFactory;
+import org.openecomp.core.impl.ToscaConverterImpl;
+
+public class ToscaConverterFactoryImpl extends ToscaConverterFactory {
+ @Override
+ public ToscaConverter createInterface() {
+ return new ToscaConverterImpl();
+ }
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/services/ServiceTemplateReaderServiceImpl.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/services/ServiceTemplateReaderServiceImpl.java
new file mode 100644
index 0000000000..fa8532546c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/services/ServiceTemplateReaderServiceImpl.java
@@ -0,0 +1,76 @@
+package org.openecomp.core.impl.services;
+
+import org.openecomp.core.converter.ServiceTemplateReaderService;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.tosca.services.YamlUtil;
+import org.yaml.snakeyaml.error.YAMLException;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+import static org.openecomp.core.converter.datatypes.Constants.*;
+
+public class ServiceTemplateReaderServiceImpl implements ServiceTemplateReaderService {
+
+ private Map<String, Object> readServiceTemplate = new HashMap<>();
+
+ public ServiceTemplateReaderServiceImpl(byte[] serviceTemplateContent){
+ this.readServiceTemplate = readServiceTemplate(serviceTemplateContent);
+ }
+
+ @Override
+ public Map<String, Object> readServiceTemplate(byte[] serviceTemplateContent) {
+
+ Map<String, Object> readSt =
+ new YamlUtil().yamlToObject(new String(serviceTemplateContent), Map.class);
+
+ return readSt;
+ }
+
+ @Override
+ public Object getMetadata(){
+ return this.readServiceTemplate.get(metadata);
+ }
+
+ @Override
+ public Object getToscaVersion(){
+ return this.readServiceTemplate.get(definitionVersion);
+ }
+
+ @Override
+ public Object getNodeTypes(){
+ return this.readServiceTemplate.get(nodeTypes);
+ }
+
+ @Override
+ public Object getTopologyTemplate(){
+ return this.readServiceTemplate.get(topologyTemplate);
+ }
+
+ @Override
+ public Map<String, Object> getNodeTemplates(){
+ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
+ : (Map<String, Object>) ((Map<String, Object>)this.getTopologyTemplate()).get(nodeTemplates);
+ }
+
+ @Override
+ public Map<String, Object> getInputs(){
+ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
+ : (Map<String, Object>) ((Map<String, Object>)this.getTopologyTemplate()).get(inputs);
+ }
+
+ @Override
+ public Map<String, Object> getOutputs(){
+ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
+ : (Map<String, Object>) ((Map<String, Object>)this.getTopologyTemplate()).get(outputs);
+ }
+
+ @Override
+ public Map<String, Object> getSubstitutionMappings(){
+ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
+ : (Map<String, Object>) ((Map<String, Object>)this.getTopologyTemplate()).get(substitutionMappings);
+ }
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/resources/ToscaConverters.json b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/resources/ToscaConverters.json
new file mode 100644
index 0000000000..e1cddeb854
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/resources/ToscaConverters.json
@@ -0,0 +1,3 @@
+{
+ "ToscaConverter" : "org.openecomp.core.converter.impl.ToscaConverterImpl"
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConverterImplTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConverterImplTest.java
new file mode 100644
index 0000000000..4abed3e316
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConverterImplTest.java
@@ -0,0 +1,193 @@
+package org.openecomp.core.converter.impl;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.junit.Test;
+import org.openecomp.core.converter.ToscaConverter;
+import org.openecomp.core.impl.ToscaConverterImpl;
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
+
+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.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Objects;
+
+import static org.junit.Assert.assertEquals;
+import static org.openecomp.core.converter.datatypes.Constants.globalStName;
+import static org.openecomp.core.converter.datatypes.Constants.mainStName;
+
+public class ToscaConverterImplTest {
+
+ private static ToscaConverter toscaConverter = new ToscaConverterImpl();
+ private static String inputFilesPath;
+ private static String outputFilesPath;
+ private static Map<String, ServiceTemplate> expectedOutserviceTemplates;
+
+
+ @Test
+ public void testConvertMainSt() throws IOException {
+ inputFilesPath = "/mock/toscaConverter/convertMainSt/in";
+ outputFilesPath = "/mock/toscaConverter/convertMainSt/out";
+
+ FileContentHandler fileContentHandler =
+ createFileContentHandlerFromInput(inputFilesPath);
+
+ expectedOutserviceTemplates = new HashMap<>();
+ loadServiceTemplates(outputFilesPath, new ToscaExtensionYamlUtil(),
+ expectedOutserviceTemplates);
+
+ ToscaServiceModel toscaServiceModel = toscaConverter.convert(fileContentHandler);
+ ServiceTemplate mainSt = toscaServiceModel.getServiceTemplates().get(mainStName);
+
+ checkSTResults(expectedOutserviceTemplates, null, mainSt);
+ }
+
+
+
+ private FileContentHandler createFileContentHandlerFromInput(String inputFilesPath)
+ throws IOException {
+ URL inputFilesUrl = this.getClass().getResource(inputFilesPath);
+ String path = inputFilesUrl.getPath();
+ File directory = new File(path);
+ File[] listFiles = directory.listFiles();
+
+ FileContentHandler fileContentHandler = new FileContentHandler();
+ insertFilesIntoFileContentHandler(listFiles, fileContentHandler);
+ return fileContentHandler;
+ }
+
+ private void insertFilesIntoFileContentHandler(File[] listFiles,
+ FileContentHandler fileContentHandler)
+ throws IOException {
+ byte[] fileContent;
+ if(CollectionUtils.isEmpty(fileContentHandler.getFileList())) {
+ fileContentHandler.setFiles(new HashMap<>());
+ }
+
+ for (File file : listFiles) {
+ if(!file.isDirectory()) {
+ try (FileInputStream fis = new FileInputStream(file)) {
+ fileContent = FileUtils.toByteArray(fis);
+ fileContentHandler.addFile(file.getPath(), fileContent);
+ }
+ }else{
+ File[] currFileList = file.listFiles();
+ insertFilesIntoFileContentHandler(currFileList, fileContentHandler);
+ }
+
+ }
+ }
+
+ private void checkSTResults(
+ Map<String, ServiceTemplate> expectedOutserviceTemplates,
+ ServiceTemplate gloablSubstitutionServiceTemplate, ServiceTemplate mainServiceTemplate) {
+ YamlUtil yamlUtil = new YamlUtil();
+ if (Objects.nonNull(gloablSubstitutionServiceTemplate)) {
+ assertEquals("difference global substitution service template: ",
+ yamlUtil.objectToYaml(expectedOutserviceTemplates.get(globalStName)),
+ yamlUtil.objectToYaml(gloablSubstitutionServiceTemplate));
+ }
+ if (Objects.nonNull(mainServiceTemplate)) {
+ assertEquals("difference main service template: ",
+ yamlUtil.objectToYaml(expectedOutserviceTemplates.get(mainStName)),
+ yamlUtil.objectToYaml(mainServiceTemplate));
+ }
+ }
+
+ public static void loadServiceTemplates(String serviceTemplatesPath,
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil,
+ Map<String, ServiceTemplate> serviceTemplates)
+ throws IOException {
+ URL urlFile = ToscaConverterImplTest.class.getResource(serviceTemplatesPath);
+ if (urlFile != null) {
+ File pathFile = new File(urlFile.getFile());
+ File[] files = pathFile.listFiles();
+ 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,
+ File[] files,
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil)
+ throws IOException {
+ for (File file : files) {
+ try (InputStream yamlFile = new FileInputStream(file)) {
+ ServiceTemplate serviceTemplateFromYaml =
+ toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
+ createConcreteRequirementObjectsInServiceTemplate(serviceTemplateFromYaml, toscaExtensionYamlUtil);
+ serviceTemplates.put(file.getName(), serviceTemplateFromYaml);
+ try {
+ yamlFile.close();
+ } catch (IOException ignore) {
+ }
+ } catch (FileNotFoundException e) {
+ throw e;
+ } catch (IOException e) {
+ throw e;
+ }
+ }
+ }
+
+ private static void createConcreteRequirementObjectsInServiceTemplate(ServiceTemplate
+ serviceTemplateFromYaml,
+ ToscaExtensionYamlUtil
+ toscaExtensionYamlUtil) {
+
+ if (serviceTemplateFromYaml == null
+ || serviceTemplateFromYaml.getTopology_template() == null
+ || serviceTemplateFromYaml.getTopology_template().getNode_templates() == null) {
+ return;
+ }
+
+ //Creating concrete objects
+ Map<String, NodeTemplate> nodeTemplates =
+ serviceTemplateFromYaml.getTopology_template().getNode_templates();
+ for (Map.Entry<String, NodeTemplate> entry : nodeTemplates.entrySet()) {
+ NodeTemplate nodeTemplate = entry.getValue();
+ List<Map<String, RequirementAssignment>> requirements = nodeTemplate.getRequirements();
+ List<Map<String, RequirementAssignment>> concreteRequirementList = new ArrayList<>();
+ if (requirements != null) {
+ ListIterator<Map<String, RequirementAssignment>> reqListIterator = requirements
+ .listIterator();
+ while (reqListIterator.hasNext()){
+ Map<String, RequirementAssignment> requirement = reqListIterator.next();
+ Map<String, RequirementAssignment> concreteRequirement = new HashMap<>();
+ for (Map.Entry<String, RequirementAssignment> reqEntry : requirement.entrySet()) {
+ RequirementAssignment requirementAssignment = (toscaExtensionYamlUtil
+ .yamlToObject(toscaExtensionYamlUtil.objectToYaml(reqEntry.getValue()),
+ RequirementAssignment.class));
+ concreteRequirement.put(reqEntry.getKey(), requirementAssignment);
+ concreteRequirementList.add(concreteRequirement);
+ reqListIterator.remove();
+ }
+ }
+ requirements.clear();
+ requirements.addAll(concreteRequirementList);
+ nodeTemplate.setRequirements(requirements);
+ }
+ System.out.println();
+ //toscaExtensionYamlUtil.yamlToObject(nodeTemplate, NodeTemplate.class);
+ }
+ }
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java
new file mode 100644
index 0000000000..1ee8f6c05f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java
@@ -0,0 +1,56 @@
+package org.openecomp.core.converter.impl;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Test;
+import org.openecomp.core.impl.GlobalSubstitutionServiceTemplate;
+import org.openecomp.core.impl.ToscaConverterImpl;
+import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+
+import java.net.URL;
+import java.util.Map;
+import java.util.Set;
+
+import static org.openecomp.sdc.common.utils.CommonUtil.*;
+import static org.junit.Assert.*;
+import static org.openecomp.core.impl.GlobalSubstitutionServiceTemplate.*;
+public class ToscaConvertorDefinitionsTest {
+
+
+ @Test
+ public void loadCsar() throws Exception {
+ URL resource = ToscaConvertorDefinitionsTest.class.getResource("/csar/vCSCF.csar");
+ byte[] bytes = IOUtils.toByteArray(resource);
+ assertNotNull(bytes);
+ FileContentHandler contentMap = validateAndUploadFileContent(OnboardingTypesEnum.CSAR, bytes);
+ ToscaConverterImpl toscaConverter = new ToscaConverterImpl();
+ ToscaServiceModel convert = toscaConverter.convert(contentMap);
+ Map<String, ServiceTemplate> serviceTemplates = convert.getServiceTemplates();
+ assertTrue(serviceTemplates.containsKey(GLOBAL_SUBSTITUTION_SERVICE_FILE_NAME));
+ ServiceTemplate serviceTemplate = serviceTemplates.get(GLOBAL_SUBSTITUTION_SERVICE_FILE_NAME);
+
+ assertNotNull(serviceTemplate);
+ assertTrue(serviceTemplate instanceof GlobalSubstitutionServiceTemplate);
+
+ assertNotNull(serviceTemplate.getMetadata());
+ assertFalse(serviceTemplate.getMetadata().isEmpty());
+ assertTrue(serviceTemplate.getMetadata().containsKey(TEMPLATE_NAME_PROPERTY));
+
+ assertNotNull(serviceTemplate.getImports());
+ assertFalse(serviceTemplate.getImports().isEmpty());
+ assertEquals(1 ,serviceTemplate.getImports().size());
+ assertTrue(serviceTemplate.getImports().get(0).containsKey(HEAT_INDEX));
+
+ assertEquals(DEFININTION_VERSION, serviceTemplate.getTosca_definitions_version());
+
+
+ assertNotNull(serviceTemplate.getNode_types());
+ assertEquals(1, serviceTemplate.getNode_types().size());
+ Set<String> keys = serviceTemplate.getNode_types().keySet();
+ assertTrue(keys.contains("tosca.nodes.nfv.ext.zte.VNF.vCSCF"));
+ }
+
+
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/csar/vCSCF.csar b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/csar/vCSCF.csar
new file mode 100644
index 0000000000..f1b77554e4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/csar/vCSCF.csar
Binary files differ
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Artifacts/checksum.lst b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Artifacts/checksum.lst
new file mode 100644
index 0000000000..701f14d45d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Artifacts/checksum.lst
@@ -0,0 +1 @@
+Definitions/openovnf__vPCRF.yaml:75bd8963ecc09bf769d0bb5cb475314d
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Artifacts/csar.meta b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Artifacts/csar.meta
new file mode 100644
index 0000000000..aac2fed3c3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Artifacts/csar.meta
@@ -0,0 +1,3 @@
+Type:NFAR
+Version:v1.0
+Provider:Huawei \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..a88171701e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,60 @@
+node_types:
+ 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_definitions_version: tosca_simple_yaml_1_0
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.mf b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.mf
new file mode 100644
index 0000000000..e45f002332
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.mf
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+
+Name: Entry-Definitions
+Name: MainServiceTemplate.yaml
+
+Name: Definitions\GlobalSubstitutionTypesServiceTemplate.yaml
+
+Name: Artifacts\install.sh
+
+Name: Artifacts\create_stack.sh
+
+Name: Licenses\license.xml
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..041afbacf8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/MainServiceTemplate.yaml
@@ -0,0 +1,551 @@
+imports:
+- openovnf__tosca.nodes.nfv.VNF.vPCRF.yaml
+- openonfv__tosca.capabilities.Scalable.yaml
+- openonfv__tosca.capabilities.nfv.Metric.yaml
+- openonfv__tosca.nodes.nfv.VnfVirtualLinkDesc.yaml
+- openonfv__tosca.capabilities.network.Bindable.yaml
+- openonfv__tosca.capabilities.Attachment.yaml
+- openonfv__tosca.capabilities.nfv.VirtualBindable.yaml
+- openonfv__tosca.capabilities.nfv.VirtualLinkable.yaml
+- openonfv__tosca.requirements.nfv.VirtualStorage.yaml
+- openonfv__tosca.nodes.nfv.VDU.VirtualStorage.yaml
+- openonfv__tosca.relationships.nfv.VirtualBindsTo.yaml
+- openonfv__tosca.nodes.nfv.VDU.Compute.yaml
+- openonfv__tosca.relationships.nfv.VirtualLinksTo.yaml
+- openonfv__tosca.capabilities.nfv.VirtualCompute.yaml
+- openonfv__tosca.capabilities.Container.yaml
+- openonfv__tosca.capabilities.nfv.VirtualStorage.yaml
+- openonfv__tosca.requirements.nfv.VirtualBinding.yaml
+- openonfv__tosca.capabilities.Endpoint.Admin.yaml
+- openonfv__tosca.capabilities.OperatingSystem.yaml
+- openonfv__tosca.nodes.nfv.VduCpd.yaml
+- openonfv__tosca.relationships.nfv.VDU.AttachedTo.yaml
+
+metadata:
+ vendor: Huawei
+ csarVersion: v1.0
+ csarProvider: Huawei
+ id: vPCRF_NF_HW
+ version: v1.0
+ csarType: NFAR
+ name: vPCRF
+ vnfdVersion: v1.0
+ vnfmType: hwvnfm
+
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.nat_fw:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+topology_template:
+ node_templates:
+ PUPDU_Storage:
+ attributes:
+ tosca_name: PUPDU_Storage
+ properties:
+ id: PUPDU_Storage
+ size_of_storage: 200G
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ USRSU:
+ attributes:
+ tosca_name: USRSU
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {}
+ virtual_cpu:
+ num_virtual_cpu: 4
+ properties:
+ configurable_properties:
+ test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+ name: USRSU
+ descrption: the virtual machine of USRSU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: USRSU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VDU.Compute
+ USPID3_VduCpd_Fabric:
+ attributes:
+ tosca_name: USPID3_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+ PUPDU_VduCpd_Base:
+ attributes:
+ tosca_name: PUPDU_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ OMU_VduCpd_Fabric:
+ attributes:
+ tosca_name: OMU_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: OMU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+ USPID3:
+ attributes:
+ tosca_name: USPID3
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {}
+ virtual_cpu:
+ num_virtual_cpu: 4
+ properties:
+ configurable_properties:
+ test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+ name: USPID3
+ descrption: the virtual machine of USPID3
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: USPID3_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VDU.Compute
+ UPIRU_VduCpd_Base:
+ attributes:
+ tosca_name: UPIRU_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ OMU2ManageNet:
+ attributes:
+ tosca_name: OMU2ManageNet
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ node: tosca.nodes.Root
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ OMU_Storage:
+ attributes:
+ tosca_name: OMU_Storage
+ properties:
+ id: OMU_Storage
+ size_of_storage: 256G
+ rdma_enabled: false
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ UPSPU:
+ attributes:
+ tosca_name: UPSPU
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {}
+ virtual_cpu:
+ num_virtual_cpu: 4
+ properties:
+ configurable_properties:
+ test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+ name: UPSPU
+ descrption: the virtual machine of UPSPU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: UPSPU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VDU.Compute
+ PUPDU_VduCpd_Fabric:
+ attributes:
+ tosca_name: PUPDU_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+ USPID2BossNet:
+ attributes:
+ tosca_name: USPID2BossNet
+ properties:
+ role: root
+ layer_protocol: ethernet
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ OMU_VduCpd_Base:
+ attributes:
+ tosca_name: OMU_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: OMU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ USPID3_Storage:
+ attributes:
+ tosca_name: USPID3_Storage
+ properties:
+ id: USPID3_Storage
+ size_of_storage: 300G
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ UPIRU2DataNet2:
+ attributes:
+ tosca_name: UPIRU2DataNet2
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ USPID2ManageNet:
+ attributes:
+ tosca_name: USPID2ManageNet
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ UPIRU2DataNet3:
+ attributes:
+ tosca_name: UPIRU2DataNet3
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ PUPDU2DataNet3:
+ attributes:
+ tosca_name: PUPDU2DataNet3
+ properties:
+ role: root
+ layer_protocol: ethernet
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ USRSU2DataNet1:
+ attributes:
+ tosca_name: USRSU2DataNet1
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ USRSU2DataNet2:
+ attributes:
+ tosca_name: USRSU2DataNet2
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ UPIRU_Storage:
+ attributes:
+ tosca_name: UPIRU_Storage
+ properties:
+ id: UPIRU_Storage
+ size_of_storage: 4G
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ PUPDU2SignalNet1:
+ attributes:
+ tosca_name: PUPDU2SignalNet1
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ UPIRU2DataNet1:
+ attributes:
+ tosca_name: UPIRU2DataNet1
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ USPID3_VduCpd_Base:
+ attributes:
+ tosca_name: USPID3_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ Base:
+ attributes:
+ tosca_name: Base
+ properties:
+ vl_flavours:
+ flavours: test2
+ connectivity_type:
+ layer_protocol: ipv4
+ flow_pattern:
+ type: tosca.nodes.nfv.VnfVirtualLinkDesc
+ USRSU_Storage:
+ attributes:
+ tosca_name: USRSU_Storage
+ properties:
+ id: USRSU_Storage
+ size_of_storage: 200G
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ UPSPU_VduCpd_Base:
+ attributes:
+ tosca_name: UPSPU_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPSPU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ PUPDU:
+ attributes:
+ tosca_name: PUPDU
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {}
+ virtual_cpu:
+ num_virtual_cpu: 4
+ properties:
+ configurable_properties:
+ test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+ name: PUPDU
+ descrption: the virtual machine of PUPDU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: PUPDU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VDU.Compute
+ USRSU_VduCpd_Base:
+ attributes:
+ tosca_name: USRSU_VduCpd_Base
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ type: tosca.nodes.nfv.VduCpd
+ OMU:
+ attributes:
+ tosca_name: OMU
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 16G
+ requested_additional_capabilities: {}
+ virtual_cpu:
+ num_virtual_cpu: 4
+ properties:
+ configurable_properties:
+ test: {"additional_vnfc_configurable_properties":{"aaa":"1"}}
+ name: OMU
+ descrption: the virtual machine of OMU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: OMU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VDU.Compute
+ UPIRU_VduCpd_Fabric:
+ attributes:
+ tosca_name: UPIRU_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+ UPSPU_Storage:
+ attributes:
+ tosca_name: UPSPU_Storage
+ properties:
+ id: UPSPU_Storage
+ size_of_storage: 4G
+ type_of_storage: volume
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ PUPDU2ManageNet:
+ attributes:
+ tosca_name: PUPDU2ManageNet
+ properties:
+ role: root
+ layer_protocol: ethernet
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ USRSU_VduCpd_Fabric:
+ attributes:
+ tosca_name: USRSU_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+ UPIRU2SignalNet1:
+ attributes:
+ tosca_name: UPIRU2SignalNet1
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ type: tosca.nodes.nfv.VduCpd
+ Fabric:
+ attributes:
+ tosca_name: Fabric
+ properties:
+ vl_flavours:
+ flavours: test1
+ connectivity_type:
+ layer_protocol: ipv4
+ flow_pattern:
+ type: tosca.nodes.nfv.VnfVirtualLinkDesc
+ UPSPU_VduCpd_Fabric:
+ attributes:
+ tosca_name: UPSPU_VduCpd_Fabric
+ properties:
+ role: root
+ layer_protocol: ipv4
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPSPU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ type: tosca.nodes.nfv.VduCpd
+
+ substitution_mappings:
+ node_type: tosca.nodes.nfv.VNF.vPCRF
+tosca_definitions_version: tosca_simple_yaml_1_0 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/TOSCA-Metadata/TOSCA.meta b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/TOSCA-Metadata/TOSCA.meta
new file mode 100644
index 0000000000..69f62ca864
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/in/TOSCA-Metadata/TOSCA.meta
@@ -0,0 +1,135 @@
+TOSCA-Meta-Version: 1.0
+CSAR-Version: 1.0
+Created-By: Winery 0.1.37-SNAPSHOT
+Entry-Definitions: Definitions/openovnf__vPCRF.yaml
+
+Name: Definitions/openovnf__vPCRF.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openovnf__tosca.nodes.nfv.VNF.vPCRF.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.Scalable.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.nfv.Metric.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.nodes.nfv.VnfVirtualLinkDesc.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.network.Bindable.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.Attachment.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.nfv.VirtualBindable.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.nfv.VirtualLinkable.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.requirements.nfv.VirtualStorage.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.nodes.nfv.VDU.VirtualStorage.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.relationships.nfv.VirtualBindsTo.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.nodes.nfv.VDU.Compute.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.relationships.nfv.VirtualLinksTo.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.nfv.VirtualCompute.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.Container.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.nfv.VirtualStorage.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.requirements.nfv.VirtualBinding.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.Endpoint.Admin.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.capabilities.OperatingSystem.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.nodes.nfv.VduCpd.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.relationships.nfv.VDU.AttachedTo.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openonfv__tosca.requirements.nfv.VirtualLink.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: Definitions/openovnf__tosca.nodes.nfv.VNF.yaml
+Content-Type: application/vnd.oasis.tosca.definitions
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.VirtualStorage/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VnfVirtualLinkDesc/appearance/bigIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VnfVirtualLinkDesc/appearance/smallIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.Compute/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VduCpd/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: capabilitytypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.capabilities.nfv.VirtualCompute/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv%2Fvnf/tosca.nodes.nfv.VNF/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.VirtualStorage/appearance/bigIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.VirtualStorage/appearance/smallIcon.png
+Content-Type: image/png
+
+Name: capabilitytypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.capabilities.Container/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.Compute/appearance/bigIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VDU.Compute/appearance/smallIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv%2Fvnf/tosca.nodes.nfv.VNF.vPCRF/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: capabilitytypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.capabilities.OperatingSystem/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VnfVirtualLinkDesc/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VduCpd/appearance/bigIcon.png
+Content-Type: image/png
+
+Name: nodetypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.nodes.nfv.VduCpd/appearance/smallIcon.png
+Content-Type: image/png
+
+Name: capabilitytypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.capabilities.Scalable/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+Name: relationshiptypes/http%3A%2F%2Fwww.open-o.org%2Ftosca%2Fnfv/tosca.relationships.nfv.VDU.AttachedTo/propertiesdefinition/Properties.xsd
+Content-Type: text/xml
+
+
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..77bfcac710
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/mock/toscaConverter/convertMainSt/out/MainServiceTemplate.yaml
@@ -0,0 +1,546 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+ vnfdVersion: v1.0
+ template_name: Main
+ vendor: Huawei
+ csarVersion: v1.0
+ vnfmType: hwvnfm
+ csarProvider: Huawei
+ name: vPCRF
+ id: vPCRF_NF_HW
+ version: v1.0
+ csarType: NFAR
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.nat_fw:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ node_templates:
+ PUPDU_Storage:
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ properties:
+ id: PUPDU_Storage
+ size_of_storage: 200G
+ type_of_storage: volume
+ attributes:
+ tosca_name: PUPDU_Storage
+ USRSU:
+ type: tosca.nodes.nfv.VDU.Compute
+ properties:
+ configurable_properties:
+ test:
+ additional_vnfc_configurable_properties:
+ aaa: '1'
+ name: USRSU
+ descrption: the virtual machine of USRSU
+ attributes:
+ tosca_name: USRSU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: USRSU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ capabilities:
+ - virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {
+ }
+ virtual_cpu:
+ num_virtual_cpu: 4.0
+ USPID3_VduCpd_Fabric:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: USPID3_VduCpd_Fabric
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ PUPDU_VduCpd_Base:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: PUPDU_VduCpd_Base
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ OMU_VduCpd_Fabric:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: OMU_VduCpd_Fabric
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: OMU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ USPID3:
+ type: tosca.nodes.nfv.VDU.Compute
+ properties:
+ configurable_properties:
+ test:
+ additional_vnfc_configurable_properties:
+ aaa: '1'
+ name: USPID3
+ descrption: the virtual machine of USPID3
+ attributes:
+ tosca_name: USPID3
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: USPID3_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ capabilities:
+ - virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {
+ }
+ virtual_cpu:
+ num_virtual_cpu: 4.0
+ UPIRU_VduCpd_Base:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: UPIRU_VduCpd_Base
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ OMU2ManageNet:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: OMU2ManageNet
+ requirements:
+ - virtual_binding:
+ node: tosca.nodes.Root
+ - virtual_link:
+ node: tosca.nodes.Root
+ OMU_Storage:
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ properties:
+ id: OMU_Storage
+ size_of_storage: 256G
+ rdma_enabled: false
+ type_of_storage: volume
+ attributes:
+ tosca_name: OMU_Storage
+ UPSPU:
+ type: tosca.nodes.nfv.VDU.Compute
+ properties:
+ configurable_properties:
+ test:
+ additional_vnfc_configurable_properties:
+ aaa: '1'
+ name: UPSPU
+ descrption: the virtual machine of UPSPU
+ attributes:
+ tosca_name: UPSPU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: UPSPU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ capabilities:
+ - virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {
+ }
+ virtual_cpu:
+ num_virtual_cpu: 4.0
+ PUPDU_VduCpd_Fabric:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: PUPDU_VduCpd_Fabric
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ USPID2BossNet:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ethernet
+ attributes:
+ tosca_name: USPID2BossNet
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ node: tosca.nodes.Root
+ OMU_VduCpd_Base:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: OMU_VduCpd_Base
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: OMU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ USPID3_Storage:
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ properties:
+ id: USPID3_Storage
+ size_of_storage: 300G
+ type_of_storage: volume
+ attributes:
+ tosca_name: USPID3_Storage
+ UPIRU2DataNet2:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: UPIRU2DataNet2
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ USPID2ManageNet:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: USPID2ManageNet
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ node: tosca.nodes.Root
+ UPIRU2DataNet3:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: UPIRU2DataNet3
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ PUPDU2DataNet3:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ethernet
+ attributes:
+ tosca_name: PUPDU2DataNet3
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ node: tosca.nodes.Root
+ USRSU2DataNet1:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: USRSU2DataNet1
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ node: tosca.nodes.Root
+ USRSU2DataNet2:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: USRSU2DataNet2
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ node: tosca.nodes.Root
+ UPIRU_Storage:
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ properties:
+ id: UPIRU_Storage
+ size_of_storage: 4G
+ type_of_storage: volume
+ attributes:
+ tosca_name: UPIRU_Storage
+ PUPDU2SignalNet1:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: PUPDU2SignalNet1
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ node: tosca.nodes.Root
+ UPIRU2DataNet1:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: UPIRU2DataNet1
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ USPID3_VduCpd_Base:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: USPID3_VduCpd_Base
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USPID3
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ Base:
+ type: tosca.nodes.nfv.VnfVirtualLinkDesc
+ properties:
+ vl_flavours:
+ flavours: test2
+ connectivity_type:
+ layer_protocol: ipv4
+ flow_pattern: null
+ attributes:
+ tosca_name: Base
+ USRSU_Storage:
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ properties:
+ id: USRSU_Storage
+ size_of_storage: 200G
+ type_of_storage: volume
+ attributes:
+ tosca_name: USRSU_Storage
+ UPSPU_VduCpd_Base:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: UPSPU_VduCpd_Base
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPSPU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ PUPDU:
+ type: tosca.nodes.nfv.VDU.Compute
+ properties:
+ configurable_properties:
+ test:
+ additional_vnfc_configurable_properties:
+ aaa: '1'
+ name: PUPDU
+ descrption: the virtual machine of PUPDU
+ attributes:
+ tosca_name: PUPDU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: PUPDU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ capabilities:
+ - virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 24G
+ requested_additional_capabilities: {
+ }
+ virtual_cpu:
+ num_virtual_cpu: 4.0
+ USRSU_VduCpd_Base:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: USRSU_VduCpd_Base
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Base
+ OMU:
+ type: tosca.nodes.nfv.VDU.Compute
+ properties:
+ configurable_properties:
+ test:
+ additional_vnfc_configurable_properties:
+ aaa: '1'
+ name: OMU
+ descrption: the virtual machine of OMU
+ attributes:
+ tosca_name: OMU
+ requirements:
+ - virtual_storage:
+ capability: virtual_storage
+ node: OMU_Storage
+ - local_storage:
+ node: tosca.nodes.Root
+ capabilities:
+ - virtual_compute:
+ properties:
+ virtual_memory:
+ virtual_mem_size: 16G
+ requested_additional_capabilities: {
+ }
+ virtual_cpu:
+ num_virtual_cpu: 4.0
+ UPIRU_VduCpd_Fabric:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: UPIRU_VduCpd_Fabric
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ UPSPU_Storage:
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ properties:
+ id: UPSPU_Storage
+ size_of_storage: 4G
+ type_of_storage: volume
+ attributes:
+ tosca_name: UPSPU_Storage
+ PUPDU2ManageNet:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ethernet
+ attributes:
+ tosca_name: PUPDU2ManageNet
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: PUPDU
+ - virtual_link:
+ node: tosca.nodes.Root
+ USRSU_VduCpd_Fabric:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: USRSU_VduCpd_Fabric
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: USRSU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ UPIRU2SignalNet1:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: UPIRU2SignalNet1
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPIRU
+ - virtual_link:
+ node: tosca.nodes.Root
+ Fabric:
+ type: tosca.nodes.nfv.VnfVirtualLinkDesc
+ properties:
+ vl_flavours:
+ flavours: test1
+ connectivity_type:
+ layer_protocol: ipv4
+ flow_pattern: null
+ attributes:
+ tosca_name: Fabric
+ UPSPU_VduCpd_Fabric:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ role: root
+ layer_protocol: ipv4
+ attributes:
+ tosca_name: UPSPU_VduCpd_Fabric
+ requirements:
+ - virtual_binding:
+ capability: virtual_binding
+ node: UPSPU
+ - virtual_link:
+ capability: virtual_linkable
+ node: Fabric
+ substitution_mappings:
+ node_type: tosca.nodes.nfv.VNF.vPCRF
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/pom.xml b/openecomp-be/lib/openecomp-tosca-converter-lib/pom.xml
new file mode 100644
index 0000000000..e789e09965
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>openecomp-tosca-converter-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>openecomp-tosca-converter-api</module>
+ <module>openecomp-tosca-converter-core</module>
+ </modules>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaServiceModel.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaServiceModel.java
index 0fcaafa1c2..722c286f50 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaServiceModel.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaServiceModel.java
@@ -33,6 +33,7 @@ import java.util.Map;
*/
public class ToscaServiceModel implements AsdcModel {
private FileContentHandler artifactFiles;
+ private FileContentHandler externalFiles;
private Map<String, ServiceTemplate> serviceTemplates;
private String entryDefinitionServiceTemplate;
@@ -54,6 +55,15 @@ public class ToscaServiceModel implements AsdcModel {
this.entryDefinitionServiceTemplate = entryDefinitionServiceTemplate;
}
+ public ToscaServiceModel(FileContentHandler artifactFiles,
+ FileContentHandler externalFiles,
+ Map<String, ServiceTemplate> serviceTemplates,
+ String entryDefinitionServiceTemplate) {
+ this.artifactFiles = artifactFiles;
+ this.externalFiles = externalFiles;
+ this.serviceTemplates = serviceTemplates;
+ this.entryDefinitionServiceTemplate = entryDefinitionServiceTemplate;
+ }
/**
* Gets artifact files.
@@ -113,4 +123,12 @@ public class ToscaServiceModel implements AsdcModel {
public static ToscaServiceModel getClonedServiceModel(ToscaServiceModel toscaServiceModel) {
return ToscaServiceModel.class.cast(DataModelUtil.getClonedObject(toscaServiceModel));
}
+
+ public FileContentHandler getExternalFiles() {
+ return externalFiles;
+ }
+
+ public void setExternalFiles(FileContentHandler externalFiles) {
+ this.externalFiles = externalFiles;
+ }
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
index dc2ed6c76b..45e6c3deef 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
@@ -492,7 +492,8 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
toscaServiceModel.getServiceTemplates().get(fetchFileNameForImport(importFile,
serviceTemplate.getMetadata() == null ? null
: serviceTemplate.getMetadata().get("filename")));
- if (filesScanned.contains(ToscaUtil.getServiceTemplateFileName(template))) {
+ if (Objects.isNull(template) ||
+ filesScanned.contains(ToscaUtil.getServiceTemplateFileName(template))) {
continue;
} else {
filesScanned.add(ToscaUtil.getServiceTemplateFileName(template));
diff --git a/openecomp-be/lib/pom.xml b/openecomp-be/lib/pom.xml
index 5095578db4..df1b854a31 100644
--- a/openecomp-be/lib/pom.xml
+++ b/openecomp-be/lib/pom.xml
@@ -31,5 +31,7 @@
<module>openecomp-logging-lib</module>
<module>openecomp-healing-lib</module>
<module>openecomp-sdc-activity-log-lib</module>
+ <module>openecomp-tosca-converter-lib</module>
+ <module>openecomp-sdc-orchestration-lib</module>
</modules>
</project>
diff --git a/openecomp-be/pom.xml b/openecomp-be/pom.xml
index 92d5bccf0b..6147ea8fe4 100644
--- a/openecomp-be/pom.xml
+++ b/openecomp-be/pom.xml
@@ -111,6 +111,26 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <version>${jacoco.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>prepare-agent</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>report</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>report</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
</plugins>
</build>
@@ -172,7 +192,7 @@
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>${janino.version}</version>
diff --git a/openecomp-be/tools/install/database/schemaTemplates/composition/deployment.ftl b/openecomp-be/tools/install/database/schemaTemplates/composition/deployment.ftl
index 67271c79e2..2bd0b40705 100644
--- a/openecomp-be/tools/install/database/schemaTemplates/composition/deployment.ftl
+++ b/openecomp-be/tools/install/database/schemaTemplates/composition/deployment.ftl
@@ -1,39 +1,38 @@
{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "model": {
- "type": "string",
- "maxLength": 30,
- "pattern": "^[A-Za-z0-9_,-]*$"
- },
- "description": {
- "type": "string",
+"$schema": "http://json-schema.org/draft-04/schema#",
+"type": "object",
+"properties": {
+"model": {
+"type": "string",
+"maxLength": 30
+},
+"description": {
+"type": "string",
- "maxLength": 300
- },
- "featureGroupId":{
- "type": "string",
- "enum": [<#if featureGroupIds??> <#list featureGroupIds as featureGroupId>
- "${featureGroupId}"<#sep>,</#list> </#if>
- ]
- },
- "componentComputeAssociations": {
- "type": "array",
- "properties": {
- "vfcid": {
- "type": "string"
- },
- "computeFlavorid": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
+"maxLength": 300
+},
+"featureGroupId":{
+"type": "string",
+"enum": [<#if featureGroupIds??> <#list featureGroupIds as featureGroupId>
+"${featureGroupId}"<#sep>,</#list> </#if>
+]
+},
+"componentComputeAssociations": {
+"type": "array",
+"properties": {
+"vfcid": {
+"type": "string"
+},
+"computeFlavorid": {
+"type": "string"
+}
+},
+"additionalProperties": false
+}
- },
- "additionalProperties": false,
- "required": [
- "model"
- ]
+},
+"additionalProperties": false,
+"required": [
+"model"
+]
} \ No newline at end of file
diff --git a/openecomp-be/tools/zusammen-tools/src/main/resources/zusammenMainTool.sh b/openecomp-be/tools/zusammen-tools/src/main/resources/zusammenMainTool.sh
index da043b130d..42c347f4e8 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/resources/zusammenMainTool.sh
+++ b/openecomp-be/tools/zusammen-tools/src/main/resources/zusammenMainTool.sh
@@ -1,14 +1,26 @@
#!/bin/bash
###########################################################################################################
-# script name - cassandra2zusammen.sh
-# run script - ./cassandra2zusammen.sh
-# This script migrates ASDC 1st class citizen entities and their sub-entities from Cassandra to
-# Zusammen.
-# This script should be run when upgrading from 1702 to 1707
-###########################################################################################################
+# script name - zusammenMainTool.sh
+# run script - ./zusammenMainTool.sh
+# 1. Export all - ./zusammenMainTool.sh -c EXPORT
+# 2. Export one item ./zusammenMainTool.sh -c EXPORT -i ${elementId}
+# 3. Import one item - ./zusammenMainTool.sh -c IMPORT -f ${fileName} -i ${elementId}
+# 4. Import all - ./zusammenMainTool.sh -c IMPORT -f ${fileName}
+# 5. Reset old version - ./zusammenMainTool.sh -c RESET_OLD_VERSION
+#
+##########################################################################################################
+
+OSTYPE=`uname -a | grep -iq ubuntu; echo $?`
+echo "${OSTYPE}"
+if [ ${OSTYPE} -eq 0 ]
+then
+ CONF_FILE_LOCATION="/opt/app/jetty/base/be/config/catalog-be/configuration.yaml"
+else
+ CONF_FILE_LOCATION="/apps/jetty/base/be/config/catalog-be/configuration.yaml"
+fi
+echo "Configuration file location: ${CONF_FILE_LOCATION}"
-# change exist package and service templates in db
-java -Dlog.home=/apps/jetty/base/be/logs -Dconfiguration.yaml=/apps/jetty/base/be/config/catalog-be/configuration.yaml -jar openecomp-zusammen-tools-1.0-SNAPSHOT.jar org.openecomp.core.tools.main.ZusammenMainTool $1 $2 $3 $4 $5 $6
-STATUS="${?}" echo "${STATUS}" echo "All log messages for the zusammenMainTool migration process are in /apps/jetty/base/be/logs/ASDC/ASDC-BE/zusammen_tool_debug.log"
+java -Dlog.home=/apps/jetty/base/be/logs -Dconfiguration.yaml=${CONF_FILE_LOCATION} -jar openecomp-zusammen-tools-1.0-SNAPSHOT.jar org.openecomp.core.tools.main.ZusammenMainTool $1 $2 $3 $4 $5 $6
+STATUS="${?}" echo "${STATUS}"
diff --git a/openecomp-ui/package.json b/openecomp-ui/package.json
index 82b5dea888..0d22c479db 100644
--- a/openecomp-ui/package.json
+++ b/openecomp-ui/package.json
@@ -2,7 +2,7 @@
"name": "dox-ui",
"version": "1.0.0",
"description": "",
- "author": "OPENECOMP",
+ "author": "ECOMP",
"license": "SEE LICENSE IN LICENSE",
"scripts": {
"start": "gulp dev && webpack-dev-server --progress",
@@ -21,13 +21,12 @@
"dependencies": {
"classnames": "^2.2.5",
"core-js": "^2.4.0",
- "d3": "^4.10.0",
+ "d3": "^3.5.16",
"dox-sequence-diagram-ui": "file:../dox-sequence-diagram-ui",
"intl": "^1.0.1",
"intl-format-cache": "^2.0.5",
"intl-messageformat": "^1.2.0",
"intl-relativeformat": "^1.2.0",
- "jquery": "^2.1.4",
"lodash": "^4.13.1",
"md5": "^2.1.0",
"randomstring": "^1.1.5",
@@ -36,7 +35,7 @@
"react-dom": "~15.3.2",
"react-dropzone": "3.7.3",
"react-redux": "^4.4.1",
- "react-select": "^1.0.0-beta13",
+ "react-select": "1.0.0-rc.5",
"react-sortable": "^1.2.0",
"redux": "^3.3.1",
"restful-js": "^0.7.0",
diff --git a/openecomp-ui/pom.xml b/openecomp-ui/pom.xml
index 026f129b93..2920832b17 100644
--- a/openecomp-ui/pom.xml
+++ b/openecomp-ui/pom.xml
@@ -1,5 +1,6 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.openecomp.sdc</groupId>
@@ -14,11 +15,12 @@
<relativePath>../onboarding</relativePath>
</parent>
+ <properties>
+ <maven.war.plugin.version>3.0.0</maven.war.plugin.version>
+ </properties>
+
<build>
<plugins>
- <!-- ============================================= -->
- <!-- Clean dist folder -->
- <!-- ============================================= -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.6.1</version>
@@ -38,10 +40,12 @@
<directory>${basedir}/node_modules</directory>
</fileset>
<fileset>
- <directory>${basedir}/../dox-sequence-diagram-ui/dist</directory>
+ <directory>${basedir}/../dox-sequence-diagram-ui/dist
+ </directory>
</fileset>
<fileset>
- <directory>${basedir}/../dox-sequence-diagram-ui/node_modules</directory>
+ <directory>${basedir}/../dox-sequence-diagram-ui/node_modules
+ </directory>
</fileset>
</filesets>
</configuration>
@@ -58,8 +62,8 @@
<version>1.4</version>
<configuration>
- <installDirectory>${project.parent.parent.basedir}</installDirectory>
- </configuration>
+ <installDirectory>${project.parent.parent.basedir}</installDirectory>
+ </configuration>
<executions>
@@ -75,13 +79,13 @@
</execution>
<execution>
- <id>npm set progress off</id>
- <goals>
- <goal>npm</goal>
- </goals>
- <configuration>
- <arguments>set progress=false</arguments>
- </configuration>
+ <id>npm set progress off</id>
+ <goals>
+ <goal>npm</goal>
+ </goals>
+ <configuration>
+ <arguments>set progress=false</arguments>
+ </configuration>
</execution>
<execution>
@@ -90,11 +94,34 @@
<goal>npm</goal>
</goals>
<configuration>
- <workingDirectory>${project.basedir}/../dox-sequence-diagram-ui</workingDirectory>
+ <workingDirectory>${project.basedir}/../dox-sequence-diagram-ui
+ </workingDirectory>
<arguments>install</arguments>
</configuration>
</execution>
+ <!-- Fix jQuery dependency in restful-js -->
+ <execution>
+ <id>npm restful-js</id>
+ <goals>
+ <goal>npm</goal>
+ </goals>
+ <configuration>
+ <arguments>install restful-js</arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>npm install restful-js dependencies</id>
+ <goals>
+ <goal>npm</goal>
+ </goals>
+ <configuration>
+ <workingDirectory>${project.basedir}/node_modules/restful-js
+ </workingDirectory>
+ <arguments>install --production</arguments>
+ </configuration>
+ </execution>
+
<execution>
<id>npm install</id>
<goals>
@@ -143,11 +170,27 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
- <version>3.0.0</version>
+ <version>${maven.war.plugin.version}</version>
+ <configuration>
+ <webResources>
+ <resource>
+ <directory>${basedir}/target/dist</directory>
+ </resource>
+ </webResources>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>${maven.war.plugin.version}</version>
<configuration>
+ <webXml>webapp-onboarding\WEB-INF\web.xml</webXml>
<webResources>
<resource>
- <directory>${basedir}/target/dist</directory>
+ <directory>external-resources/healthcheck</directory>
+ <includes>
+ <include>v1.0/healthcheck</include>
+ </includes>
</resource>
</webResources>
</configuration>
diff --git a/openecomp-ui/resources/scss/components/_submitErrorResponse.scss b/openecomp-ui/resources/scss/components/_submitErrorResponse.scss
index ac5dd278b0..cd5284059d 100644
--- a/openecomp-ui/resources/scss/components/_submitErrorResponse.scss
+++ b/openecomp-ui/resources/scss/components/_submitErrorResponse.scss
@@ -32,7 +32,7 @@
.collapse-right {
.svg-icon {
&.__chevronDown {
- transform: rotate(270deg);
+ transform: rotate(270deg);
}
}
}
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductAttachmentPage.scss b/openecomp-ui/resources/scss/modules/_softwareProductAttachmentPage.scss
index bd47fbb334..c8d8cf4e0b 100644
--- a/openecomp-ui/resources/scss/modules/_softwareProductAttachmentPage.scss
+++ b/openecomp-ui/resources/scss/modules/_softwareProductAttachmentPage.scss
@@ -1,27 +1,27 @@
.vsp-attachments-view {
position: relative;
- #attachments-tabs {
- .nav-tabs {
- background-color: $tlv-gray;
- box-shadow: none;
- border-bottom: 1px solid $light-gray;
- & > li {
- & > a {
- @extend .heading-2;
- padding-left: 0;
- padding-right: 0;
- margin-right: 40px;
- };
- &.active > a {color: $blue;};
- }
- }
- }
+ #attachments-tabs {
+ .nav-tabs {
+ background-color: $tlv-gray;
+ box-shadow: none;
+ border-bottom: 1px solid $light-gray;
+ & > li {
+ & > a {
+ @extend .heading-2;
+ padding-left: 0;
+ padding-right: 0;
+ margin-right: 40px;
+ };
+ &.active > a {color: $blue;};
+ }
+ }
+ }
.attachments-view-controllers {
position: absolute;
right: 40px;
top: 15px;
- display: flex;
+ display: flex;
.icon-component {
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductLandingPage.scss b/openecomp-ui/resources/scss/modules/_softwareProductLandingPage.scss
index 9b0375d24a..28b54cc78f 100644
--- a/openecomp-ui/resources/scss/modules/_softwareProductLandingPage.scss
+++ b/openecomp-ui/resources/scss/modules/_softwareProductLandingPage.scss
@@ -164,27 +164,29 @@
color: $light-blue;
}
}
- .software-product-landing-view-top-block-col-upl {
- @extend .flex;
- text-align: center;
- flex-direction: column;
- justify-content: center;
- border: 2px dashed $light-gray;
- margin-bottom: 20px;
- @extend .body-1;
- align-items: center;
- .upload-btn {
- padding: 15px 55px;
+ }
- }
- .drag-text {
- color: $blue;
- @extend .body-1-semibold;
- }
- .or-text {
- margin-top: 10px;
- margin-bottom: 10px;
- }
+ .software-product-landing-view-top-block-col-upl {
+ @extend .flex;
+ height: 215px;
+ text-align: center;
+ flex-direction: column;
+ justify-content: center;
+ border: 2px dashed $light-gray;
+ margin-bottom: 20px;
+ @extend .body-1;
+ align-items: center;
+ .upload-btn {
+ padding: 15px 55px;
+
+ }
+ .drag-text {
+ color: $blue;
+ @extend .body-1-semibold;
+ }
+ .or-text {
+ margin-top: 10px;
+ margin-bottom: 10px;
}
}
}
diff --git a/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx b/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx
index 8d45d86a9d..40daeff9c5 100644
--- a/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx
+++ b/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx
@@ -115,7 +115,7 @@ const UploadErrorList = ({items}) => {
{item.list.map((error, i) => <ErrorMessage key={i} warning={error.level === 'WARNING'} error={error.message}/> )}
</div>
);}
-
+
return (
<div>
{errors}
@@ -152,10 +152,10 @@ const ErrorHeader = ({errorType, collapsed, onClick}) => {
const ErrorMessage = ({error, warning}) => {
return (
<ListGroupItem className='error-code-list-item'>
- <SVGIcon
- name={warning ? 'exclamationTriangleLine' : 'error'}
- color={warning ? 'warning' : 'negative'} />
- <span className='icon-label'>{error}</span>
+ <SVGIcon
+ name={warning ? 'exclamationTriangleLine' : 'error'}
+ color={warning ? 'warning' : 'negative'} />
+ <span className='icon-label'>{error}</span>
</ListGroupItem>
);
};
diff --git a/openecomp-ui/src/nfvo-utils/i18n/i18n.js b/openecomp-ui/src/nfvo-utils/i18n/i18n.js
index 2f63dfe605..ef97b8bab4 100644
--- a/openecomp-ui/src/nfvo-utils/i18n/i18n.js
+++ b/openecomp-ui/src/nfvo-utils/i18n/i18n.js
@@ -14,14 +14,16 @@
* permissions and limitations under the License.
*/
import IntlObj from 'intl';
+import IntlMessageFormatObj from 'intl-messageformat';
import IntlRelativeFormatObj from 'intl-relativeformat';
import createFormatCacheObj from 'intl-format-cache';
import i18nJson from 'i18nJson';
/*
- Intl libs are using out dated transpailer from ecmascript6.
-* TODO: As soon as they fix it, remove this assignments!!!
-* */
+ Intl libs are using out dated transpailer from ecmascript6.
+ * TODO: As soon as they fix it, remove this assignments!!!
+ * */
var Intl = window.Intl || IntlObj.default,
+ IntlMessageFormat = IntlMessageFormatObj.default,
IntlRelativeFormat = IntlRelativeFormatObj.default,
createFormatCache = createFormatCacheObj.default;
@@ -68,11 +70,15 @@ var i18n = {
dateRelative(date, options) {
return createFormatCache(IntlRelativeFormat)(this._locale, options).format(date);
},
- message(messageId) {
+ message(messageId, options) {
+ let messageTxt = null;
if (i18nJson && i18nJson[messageId]) {
- return i18nJson[messageId];
+ messageTxt = i18nJson[messageId];
+ } else {
+ messageTxt = String(messageId);
}
- return messageId;
+ return createFormatCache(IntlMessageFormat)(messageTxt, this._locale).format(options);
+
},
getLocale() {
return this._locale;
diff --git a/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js
index 24ba05e303..fc65083bff 100644
--- a/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js
@@ -31,11 +31,13 @@ import OnboardActionHelper from './onboard/OnboardActionHelper.js';
import SoftwareProductComponentsMonitoringAction from './softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js';
import {actionTypes, enums} from './OnboardingConstants.js';
import SoftwareProductComponentsImageActionHelper from './softwareProduct/components/images/SoftwareProductComponentsImageActionHelper.js';
-import {navigationItems as SoftwareProductNavigationItems, actionTypes as SoftwareProductActionTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
+import {navigationItems as SoftwareProductNavigationItems, actionTypes as SoftwareProductActionTypes, onboardingOriginTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
import ActivityLogActionHelper from 'sdc-app/common/activity-log/ActivityLogActionHelper.js';
import licenseModelOverviewActionHelper from 'sdc-app/onboarding/licenseModel/overview/licenseModelOverviewActionHelper.js';
import store from 'sdc-app/AppStore.js';
import {selectedButton as licenseModelOverviewSelectedButton} from 'sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewConstants.js';
+import {tabsMapping as attachmentsTabsMapping} from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsConstants.js';
+import SoftwareProductAttachmentsActionHelper from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsActionHelper.js';
function setCurrentScreen(dispatch, screen, props = {}) {
dispatch({
@@ -165,7 +167,9 @@ export default {
SoftwareProductActionHelper.loadSoftwareProductDetailsData(dispatch, {licenseModelId, licensingVersion});
SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: newVersion});
- SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
+ if(response[0].onboardingOrigin === onboardingOriginTypes.ZIP) {
+ SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
+ }
setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version: newVersion});
});
},
@@ -175,11 +179,19 @@ export default {
setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DETAILS, {softwareProductId, version});
},
- navigateToSoftwareProductAttachments(dispatch, {softwareProductId, version}) {
+ navigateToSoftwareProductAttachmentsSetupTab(dispatch, {softwareProductId, version}) {
SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version});
+ SoftwareProductAttachmentsActionHelper.setActiveTab(dispatch, {activeTab: attachmentsTabsMapping.SETUP});
setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS, {softwareProductId, version});
},
+ navigateToSoftwareProductAttachmentsValidationTab(dispatch, {softwareProductId, version}) {
+ SoftwareProductActionHelper.processAndValidateHeatCandidate(dispatch, {softwareProductId, version}).then(() => {
+ SoftwareProductAttachmentsActionHelper.setActiveTab(dispatch, {activeTab: attachmentsTabsMapping.VALIDATION});
+ setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS, {softwareProductId, version});
+ });
+ },
+
navigateToSoftwareProductProcesses(dispatch, {softwareProductId, version}) {
if (softwareProductId) {
SoftwareProductProcessesActionHelper.fetchProcessesList(dispatch, {softwareProductId, version});
diff --git a/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx b/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx
index aea5fc6406..c1f3251281 100644
--- a/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx
@@ -28,7 +28,6 @@ import Onboard from './onboard/Onboard.js';
import LicenseModel from './licenseModel/LicenseModel.js';
import LicenseModelOverview from './licenseModel/overview/LicenseModelOverview.js';
import ActivityLog from 'sdc-app/common/activity-log/ActivityLog.js';
-import {doesHeatDataExist} from './softwareProduct/attachments/SoftwareProductAttachmentsUtils.js';
import LicenseAgreementListEditor from './licenseModel/licenseAgreement/LicenseAgreementListEditor.js';
import FeatureGroupListEditor from './licenseModel/featureGroups/FeatureGroupListEditor.js';
@@ -55,7 +54,8 @@ import SoftwareProductComponentsMonitoring from './softwareProduct/components/mo
import {
navigationItems as SoftwareProductNavigationItems,
onboardingMethod as onboardingMethodTypes,
- actionTypes as SoftwareProductActionTypes
+ actionTypes as SoftwareProductActionTypes,
+ onboardingOriginTypes
} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
import {statusEnum as VCItemStatus} from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
@@ -314,7 +314,12 @@ export default class OnboardingPunchOut {
OnboardingActionHelper.navigateToSoftwareProductDetails(dispatch, {softwareProductId, version: currentSoftwareProductVersion});
break;
case enums.BREADCRUMS.SOFTWARE_PRODUCT_ATTACHMENTS:
- OnboardingActionHelper.navigateToSoftwareProductAttachments(dispatch, {softwareProductId, version: currentSoftwareProductVersion});
+ if(softwareProduct.onboardingOrigin === onboardingOriginTypes.ZIP) {
+ OnboardingActionHelper.navigateToSoftwareProductAttachmentsSetupTab(dispatch, {softwareProductId, version: currentSoftwareProductVersion});
+ }
+ else if(softwareProduct.onboardingOrigin === onboardingOriginTypes.CSAR) {
+ OnboardingActionHelper.navigateToSoftwareProductAttachmentsValidationTab(dispatch, {softwareProductId, version: currentSoftwareProductVersion});
+ }
break;
case enums.BREADCRUMS.SOFTWARE_PRODUCT_PROCESSES:
OnboardingActionHelper.navigateToSoftwareProductProcesses(dispatch, {softwareProductId, version: currentSoftwareProductVersion});
@@ -415,9 +420,9 @@ export default class OnboardingPunchOut {
handleStoreChange() {
let {currentScreen, licenseModelList, softwareProductList,
softwareProduct: {softwareProductEditor: {data = {onboardingMethod: ''}},
- softwareProductComponents: {componentsList}, softwareProductAttachments: {heatSetup}}} = store.getState();
- let {onboardingMethod} = data;
- let breadcrumbsData = {onboardingMethod, currentScreen, licenseModelList, softwareProductList, componentsList, heatSetup};
+ softwareProductComponents: {componentsList}}} = store.getState();
+ let {onboardingMethod, onboardingOrigin} = data;
+ let breadcrumbsData = {onboardingMethod, currentScreen, licenseModelList, softwareProductList, componentsList, onboardingOrigin};
if (currentScreen.forceBreadCrumbsUpdate || !isEqual(breadcrumbsData, this.prevBreadcrumbsData) || this.breadcrumbsPrefixSelected) {
this.prevBreadcrumbsData = breadcrumbsData;
this.breadcrumbsPrefixSelected = false;
@@ -434,7 +439,7 @@ export default class OnboardingPunchOut {
}
}
- buildBreadcrumbs({currentScreen: {screen, props}, onboardingMethod, licenseModelList, softwareProductList, componentsList, heatSetup}) {
+ buildBreadcrumbs({currentScreen: {screen, props}, onboardingMethod, licenseModelList, softwareProductList, componentsList, onboardingOrigin}) {
let screenToBreadcrumb;
switch (screen) {
case enums.SCREEN.ONBOARDING_CATALOG:
@@ -593,7 +598,7 @@ export default class OnboardingPunchOut {
key: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENTS,
displayText: i18n('Components')
}].filter(item => {
- let isHeatData = doesHeatDataExist(heatSetup);
+ let isHeatData = onboardingOrigin !== onboardingOriginTypes.NONE;
let isManualMode = onboardingMethod === onboardingMethodTypes.MANUAL;
switch (item.key) {
case enums.BREADCRUMS.SOFTWARE_PRODUCT_ATTACHMENTS:
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js
index c9c95f359e..6426847cfc 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js
@@ -22,11 +22,10 @@ import TabulatedEditor from 'src/nfvo-components/editor/TabulatedEditor.jsx';
import {enums} from 'sdc-app/onboarding/OnboardingConstants.js';
import OnboardingActionHelper from 'sdc-app/onboarding/OnboardingActionHelper.js';
-import {navigationItems, mapScreenToNavigationItem, onboardingMethod as onboardingMethodTypes} from './SoftwareProductConstants.js';
+import {navigationItems, mapScreenToNavigationItem, onboardingMethod as onboardingMethodTypes, onboardingOriginTypes} from './SoftwareProductConstants.js';
import SoftwareProductActionHelper from './SoftwareProductActionHelper.js';
import SoftwareProductComponentsActionHelper from './components/SoftwareProductComponentsActionHelper.js';
import SoftwareProductDependenciesActionHelper from './dependencies/SoftwareProductDependenciesActionHelper.js';
-import {doesHeatDataExist} from './attachments/SoftwareProductAttachmentsUtils.js';
import HeatSetupActionHelper from './attachments/setup/HeatSetupActionHelper.js';
import { actionsEnum as versionControllerActions } from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
@@ -86,7 +85,7 @@ const buildComponentNavigationBarGroups = ({componentId, meta}) => {
const buildNavigationBarProps = ({softwareProduct, meta, screen, componentId, componentsList, mapOfExpandedIds}) => {
const {softwareProductEditor: {data: currentSoftwareProduct = {}}} = softwareProduct;
- const {id, name, onboardingMethod} = currentSoftwareProduct;
+ const {id, name, onboardingMethod, onboardingOrigin} = currentSoftwareProduct;
const groups = [{
id: id,
name: name,
@@ -122,7 +121,7 @@ const buildNavigationBarProps = ({softwareProduct, meta, screen, componentId, co
id: navigationItems.ATTACHMENTS,
name: i18n('Attachments'),
disabled: false,
- hidden: !doesHeatDataExist(meta.heatSetup),
+ hidden: onboardingOrigin === onboardingOriginTypes.NONE,
meta
}, {
id: navigationItems.ACTIVITY_LOG,
@@ -175,7 +174,7 @@ const buildVersionControllerProps = (softwareProduct) => {
function buildMeta({softwareProduct, componentId, softwareProductDependencies}) {
const {softwareProductEditor, softwareProductComponents, softwareProductQuestionnaire, softwareProductAttachments} = softwareProduct;
const {data: currentSoftwareProduct = {}} = softwareProductEditor;
- const {version} = currentSoftwareProduct;
+ const {version, onboardingOrigin} = currentSoftwareProduct;
const isReadOnlyMode = VersionControllerUtils.isReadOnly(currentSoftwareProduct);
const {qdata} = softwareProductQuestionnaire;
const {heatSetup, heatSetupCache} = softwareProductAttachments;
@@ -184,7 +183,7 @@ function buildMeta({softwareProduct, componentId, softwareProductDependencies})
const {componentEditor: {data: componentData = {} , qdata: componentQdata}} = softwareProductComponents;
currentComponentMeta = {componentData, componentQdata};
}
- const meta = {softwareProduct: currentSoftwareProduct, qdata, version, heatSetup, heatSetupCache, isReadOnlyMode, currentComponentMeta, softwareProductDependencies};
+ const meta = {softwareProduct: currentSoftwareProduct, qdata, version, onboardingOrigin, heatSetup, heatSetupCache, isReadOnlyMode, currentComponentMeta, softwareProductDependencies};
return meta;
}
@@ -280,7 +279,7 @@ const mapActionsToProps = (dispatch, {currentScreen: {screen, props: {softwarePr
},
onToggle: (groups, itemIdToExpand) => groups.map(({items}) => SoftwareProductActionHelper.toggleNavigationItems(dispatch, {items, itemIdToExpand})),
onNavigate: ({id, meta, version}) => {
- let {heatSetup, heatSetupCache} = meta;
+ let {onboardingOrigin, heatSetup, heatSetupCache} = meta;
let heatSetupPopupPromise = screen === enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS ?
HeatSetupActionHelper.heatSetupLeaveConfirmation(dispatch, {softwareProductId, heatSetup, heatSetupCache}) :
Promise.resolve();
@@ -307,7 +306,12 @@ const mapActionsToProps = (dispatch, {currentScreen: {screen, props: {softwarePr
OnboardingActionHelper.navigateToSoftwareProductDependencies(dispatch, {softwareProductId, version});
break;
case navigationItems.ATTACHMENTS:
- OnboardingActionHelper.navigateToSoftwareProductAttachments(dispatch, {softwareProductId, version});
+ if(onboardingOrigin === onboardingOriginTypes.ZIP) {
+ OnboardingActionHelper.navigateToSoftwareProductAttachmentsSetupTab(dispatch, {softwareProductId, version});
+ }
+ else if(onboardingOrigin === onboardingOriginTypes.CSAR) {
+ OnboardingActionHelper.navigateToSoftwareProductAttachmentsValidationTab(dispatch, {softwareProductId, version});
+ }
break;
case navigationItems.COMPONENTS:
OnboardingActionHelper.navigateToSoftwareProductComponents(dispatch, {softwareProductId, version});
@@ -334,9 +338,7 @@ const mapActionsToProps = (dispatch, {currentScreen: {screen, props: {softwarePr
case enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING:
- props.onSave = () => {
- return Promise.resolve();
- };
+ props.onSave = () => Promise.resolve();
break;
default:
props.onSave = ({softwareProduct, qdata}) => SoftwareProductActionHelper.updateSoftwareProduct(dispatch, {softwareProduct, qdata});
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js
index d4bee0a876..41306a1c1a 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js
@@ -20,7 +20,7 @@ import LicenseModelActionHelper from 'sdc-app/onboarding/licenseModel/LicenseMod
import LicenseAgreementActionHelper from 'sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementActionHelper.js';
import FeatureGroupsActionHelper from 'sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsActionHelper.js';
-import {actionTypes} from './SoftwareProductConstants.js';
+import {actionTypes, onboardingOriginTypes, PRODUCT_QUESTIONNAIRE, forms} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
import OnboardingActionHelper from 'sdc-app/onboarding/OnboardingActionHelper.js';
import SoftwareProductComponentsActionHelper from './components/SoftwareProductComponentsActionHelper.js';
import {actionsEnum as VersionControllerActionsEnum} from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
@@ -29,10 +29,10 @@ import {actionTypes as featureGroupsActionConstants} from 'sdc-app/onboarding/li
import {actionTypes as licenseAgreementActionTypes} from 'sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementConstants.js';
import {actionTypes as componentActionTypes} from './components/SoftwareProductComponentsConstants.js';
import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
-import {PRODUCT_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
import {modalContentMapper} from 'sdc-app/common/modal/ModalContentMapper.js';
import {statusEnum} from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
+import {actionTypes as commonActionTypes} from 'sdc-app/common/reducers/PlainDataReducerConstants.js';
function baseUrl() {
const restPrefix = Configuration.get('restPrefix');
@@ -59,7 +59,9 @@ function putSoftwareProduct(softwareProduct) {
licensingVersion: softwareProduct.licensingVersion && softwareProduct.licensingVersion.id ? softwareProduct.licensingVersion : {} ,
icon: softwareProduct.icon,
licensingData: softwareProduct.licensingData,
- onboardingMethod: softwareProduct.onboardingMethod
+ onboardingMethod: softwareProduct.onboardingMethod,
+ networkPackageName: softwareProduct.networkPackageName,
+ onboardingOrigin: softwareProduct.onboardingOrigin
});
}
@@ -267,7 +269,19 @@ const SoftwareProductActionHelper = {
.then(() => uploadFile(softwareProductId, formData, version))
.then(response => {
if (response.status === 'Success') {
- OnboardingActionHelper.navigateToSoftwareProductAttachments(dispatch, {softwareProductId, version});
+ dispatch({
+ type: commonActionTypes.DATA_CHANGED,
+ deltaData: {onboardingOrigin: response.onboardingOrigin},
+ formName: forms.VENDOR_SOFTWARE_PRODUCT_DETAILS
+ });
+ switch(response.onboardingOrigin){
+ case onboardingOriginTypes.ZIP:
+ OnboardingActionHelper.navigateToSoftwareProductAttachmentsSetupTab(dispatch, {softwareProductId, version});
+ break;
+ case onboardingOriginTypes.CSAR:
+ OnboardingActionHelper.navigateToSoftwareProductAttachmentsValidationTab(dispatch, {softwareProductId, version});
+ break;
+ }
}
else {
throw new Error(parseUploadErrorMsg(response.errors));
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js
index 0379ee5d4a..2c094ac36a 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js
@@ -39,7 +39,7 @@ export const navigationItems = keyMirror({
GENERAL: 'general',
PROCESS_DETAILS: 'process-details',
DEPLOYMENT_FLAVORS: 'deployment-flavor',
- NETWORKS: 'networks',
+ NETWORKS: 'networks',
IMAGES: 'images',
ATTACHMENTS: 'attachments',
ACTIVITY_LOG: 'activity-log',
@@ -54,7 +54,13 @@ export const navigationItems = keyMirror({
export const onboardingMethod = {
MANUAL: 'Manual',
- HEAT: 'HEAT'
+ NETWORK_PACKAGE: 'NetworkPackage'
+};
+
+export const onboardingOriginTypes = {
+ NONE: 'none',
+ ZIP: 'zip',
+ CSAR: 'csar'
};
export const forms = keyMirror({
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js
index 977a76ac69..d7a6c2ef5c 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js
@@ -15,6 +15,7 @@
*/
import {combineReducers} from 'redux';
import {actionTypes, PRODUCT_QUESTIONNAIRE} from './SoftwareProductConstants.js';
+import SoftwareProductAttachmentsReducer from './attachments/SoftwareProductAttachmentsReducer.js';
import HeatValidationReducer from './attachments/validation/HeatValidationReducer.js';
import HeatSetupReducer from './attachments/setup/HeatSetupReducer.js';
import {actionTypes as heatSetupActionTypes} from './attachments/setup/HeatSetupConstants.js';
@@ -48,6 +49,7 @@ import {IMAGE_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components
export default combineReducers({
softwareProductAttachments: combineReducers({
+ attachmentsDetails: SoftwareProductAttachmentsReducer,
heatValidation: HeatValidationReducer,
heatSetup: HeatSetupReducer,
heatSetupCache: (state = {}, action) => action.type === heatSetupActionTypes.FILL_HEAT_SETUP_CACHE ? action.payload : state
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachments.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachments.js
index 945de4fc36..f14c988866 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachments.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachments.js
@@ -23,6 +23,7 @@ import {errorLevels} from 'sdc-app/onboarding/softwareProduct/attachments/valida
import OnboardingActionHelper from 'sdc-app/onboarding/OnboardingActionHelper.js';
import HeatSetup from './setup/HeatSetup.js';
import {doesHeatDataExist} from './SoftwareProductAttachmentsUtils.js';
+import SoftwareProductAttachmentsActionHelper from './SoftwareProductAttachmentsActionHelper.js';
import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
@@ -30,7 +31,7 @@ export const mapStateToProps = (state) => {
let {
softwareProduct: {
softwareProductEditor:{data: currentSoftwareProduct = {}},
- softwareProductAttachments: {heatSetup, heatSetupCache, heatValidation : {errorList}}
+ softwareProductAttachments: {attachmentsDetails: {activeTab}, heatSetup, heatSetupCache, heatValidation : {errorList}}
}
} = state;
@@ -47,7 +48,7 @@ export const mapStateToProps = (state) => {
let isReadOnlyMode = currentSoftwareProduct && currentSoftwareProduct.version ?
VersionControllerUtils.isReadOnly(currentSoftwareProduct) : false;
- let {version} = currentSoftwareProduct;
+ let {version, onboardingOrigin} = currentSoftwareProduct;
return {
isValidationAvailable: unassigned.length === 0 && modules.length > 0,
heatSetup,
@@ -56,7 +57,9 @@ export const mapStateToProps = (state) => {
goToOverview,
HeatSetupComponent: HeatSetup,
isReadOnlyMode,
- version
+ version,
+ onboardingOrigin,
+ activeTab
};
};
@@ -83,7 +86,8 @@ export const mapActionsToProps = (dispatch, {softwareProductId}) => {
onProcessAndValidate: ({heatData, heatDataCache, isReadOnlyMode, version}) => {
return HeatSetupActionHelper.processAndValidateHeat(dispatch,
{softwareProductId, heatData, heatDataCache, isReadOnlyMode, version});
- }
+ },
+ setActiveTab: ({activeTab}) => SoftwareProductAttachmentsActionHelper.setActiveTab(dispatch, {activeTab})
};
};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsActionHelper.js
new file mode 100644
index 0000000000..ae4a615a40
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsActionHelper.js
@@ -0,0 +1,26 @@
+/*!
+ * 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.
+ */
+
+import {actionTypes} from './SoftwareProductAttachmentsConstants';
+
+export default {
+ setActiveTab(dispatch, {activeTab}) {
+ dispatch({
+ type: actionTypes.SET_ACTIVE_TAB,
+ activeTab
+ });
+ }
+};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsConstants.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsConstants.js
index b0410d1566..67265909d7 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsConstants.js
@@ -13,7 +13,13 @@
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
+import keyMirror from 'nfvo-utils/KeyMirror.js';
+
export const tabsMapping = {
SETUP: 1,
VALIDATION: 2
};
+
+export const actionTypes = keyMirror({
+ SET_ACTIVE_TAB: null
+});
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsReducer.js
new file mode 100644
index 0000000000..5f6538ab7e
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsReducer.js
@@ -0,0 +1,25 @@
+/*!
+ * 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.
+ */
+import {actionTypes} from './SoftwareProductAttachmentsConstants.js';
+
+export default (state = [], action) => {
+ switch (action.type) {
+ case actionTypes.SET_ACTIVE_TAB:
+ return {activeTab: action.activeTab};
+ default:
+ return state;
+ }
+};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsView.jsx
index 3da26cc20f..8c59b2b1cc 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsView.jsx
@@ -20,34 +20,34 @@ import {tabsMapping} from './SoftwareProductAttachmentsConstants.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import HeatValidation from './validation/HeatValidation.js';
+import {onboardingOriginTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
class HeatScreenView extends Component {
static propTypes = {
isValidationAvailable: PropTypes.bool,
- goToOverview: PropTypes.bool
- };
-
- state = {
- activeTab: tabsMapping.SETUP
+ goToOverview: PropTypes.bool,
+ setActiveTab: PropTypes.function
};
render() {
- let {isValidationAvailable, isReadOnlyMode, heatDataExist, onDownload, softwareProductId, onProcessAndValidate, heatSetup, HeatSetupComponent, onGoToOverview, version, ...other} = this.props;
+ let {isValidationAvailable, isReadOnlyMode, heatDataExist, onDownload, softwareProductId, onProcessAndValidate,
+ heatSetup, HeatSetupComponent, onGoToOverview, version, onboardingOrigin, activeTab, setActiveTab, ...other} = this.props;
+
return (
<div className='vsp-attachments-view'>
<div className='attachments-view-controllers'>
- {(this.state.activeTab === tabsMapping.SETUP) &&
+ {(activeTab === tabsMapping.SETUP) &&
<SVGIcon
disabled={heatDataExist ? false : true}
name='download'
className='icon-component'
- label={i18n('Download HEAT')}
+ label={i18n('Export Validation')}
labelPosition='right'
color='secondary'
onClick={heatDataExist ? () => onDownload({heatCandidate: heatSetup, isReadOnlyMode, version}) : undefined}
data-test-id='download-heat'/>}
- {(this.state.activeTab === tabsMapping.VALIDATION && softwareProductId) &&
+ {(activeTab === tabsMapping.VALIDATION && softwareProductId) &&
<SVGIcon
disabled={this.props.goToOverview !== true}
onClick={this.props.goToOverview ? () => onGoToOverview({version}) : undefined}
@@ -60,7 +60,7 @@ class HeatScreenView extends Component {
<SVGIcon
name='upload'
className='icon-component'
- label={i18n('Upload New HEAT')}
+ label={i18n('Upload New File')}
labelPosition='right'
color='secondary'
disabled={isReadOnlyMode}
@@ -70,20 +70,20 @@ class HeatScreenView extends Component {
ref='hiddenImportFileInput'
type='file'
name='fileInput'
- accept='.zip'
+ accept='.zip, .csar'
onChange={evt => this.handleImport(evt)}/>
</div>
- <Tabs id='attachments-tabs' activeKey={this.state.activeTab} onSelect={key => this.handleTabPress(key)}>
- <Tab eventKey={tabsMapping.SETUP} title='HEAT Setup'>
+ <Tabs id='attachments-tabs' activeKey={activeTab} onSelect={key => this.handleTabPress(key)}>
+ <Tab eventKey={tabsMapping.SETUP} title='Setup' disabled={onboardingOrigin === onboardingOriginTypes.CSAR}>
<HeatSetupComponent
heatDataExist={heatDataExist}
- changeAttachmentsTab={tab => this.setState({activeTab: tab})}
+ changeAttachmentsTab={tab => setActiveTab({activeTab: tab})}
onProcessAndValidate={onProcessAndValidate}
softwareProductId={softwareProductId}
isReadOnlyMode={isReadOnlyMode}
version={version}/>
</Tab>
- <Tab eventKey={tabsMapping.VALIDATION} title='Heat Validation' disabled={!isValidationAvailable}>
+ <Tab eventKey={tabsMapping.VALIDATION} title='Validation' disabled={!isValidationAvailable}>
<HeatValidation {...other}/>
</Tab>
</Tabs>
@@ -92,15 +92,15 @@ class HeatScreenView extends Component {
}
handleTabPress(key) {
- let {heatSetup, heatSetupCache, onProcessAndValidate, isReadOnlyMode, version} = this.props;
+ let {heatSetup, heatSetupCache, onProcessAndValidate, isReadOnlyMode, version, setActiveTab} = this.props;
switch (key) {
case tabsMapping.VALIDATION:
onProcessAndValidate({heatData: heatSetup, heatDataCache: heatSetupCache, isReadOnlyMode, version}).then(
- () => this.setState({activeTab: tabsMapping.VALIDATION})
+ () => setActiveTab({activeTab: tabsMapping.VALIDATION})
);
return;
case tabsMapping.SETUP:
- this.setState({activeTab: tabsMapping.SETUP});
+ setActiveTab({activeTab: tabsMapping.SETUP});
return;
}
}
@@ -112,11 +112,13 @@ class HeatScreenView extends Component {
formData.append('upload', this.refs.hiddenImportFileInput.files[0]);
this.refs.hiddenImportFileInput.value = '';
this.props.onUpload(formData, version);
- this.setState({activeTab: tabsMapping.SETUP});
}
save() {
- return this.props.onSave(this.props.heatSetup, this.props.version);
+
+ return this.props.onboardingOrigin === onboardingOriginTypes.ZIP ?
+ this.props.onSave(this.props.heatSetup, this.props.version) :
+ Promise.resolve();
}
}
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationReducer.js
index f0c10ed457..1d11bdd6b7 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationReducer.js
@@ -89,16 +89,16 @@ function createErrorList(node, parent, deep = 0, errorList = []) {
return errorList;
}
-const mapValidationDataToTree = validationData => {
- let {heat, volume, network, artifacts, other} = validationData.importStructure || {};
+const mapValidationDataToTree = (validationData, packageName) => {
+ let {heat, nested, volume, network, artifacts, other} = validationData.importStructure || {};
return {
children: [
{
- name: 'HEAT',
+ name: packageName,
expanded: true,
type: 'heat',
header: true,
- children: (heat ? heat.map(mapHeatData) : [])
+ children: (heat ? heat.map(mapHeatData) : nested ? nested.map(mapHeatData) : [])
},
...(artifacts ? [{
name: 'artifacts',
@@ -165,7 +165,8 @@ export default (state = {attachmentsTree: {}}, action) => {
switch (action.type) {
case softwareProductsActionTypes.SOFTWARE_PRODUCT_LOADED:
let currentSoftwareProduct = action.response;
- let attachmentsTree = currentSoftwareProduct.validationData ? mapValidationDataToTree(currentSoftwareProduct.validationData) : {};
+ const packageName = currentSoftwareProduct.networkPackageName;
+ let attachmentsTree = currentSoftwareProduct.validationData ? mapValidationDataToTree(currentSoftwareProduct.validationData, packageName) : {};
let errorList = createErrorList(attachmentsTree);
return {
...state,
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationView.jsx
index 2a2f4ac291..80d74b2964 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationView.jsx
@@ -93,9 +93,9 @@ function HeatFileTreeHeader(props) {
<div onClick={() => props.selectNode(nodeFilters.ALL)} className={classNames({'attachments-tree-header': true,
'header-selected' : props.selectedNode === nodeFilters.ALL})} data-test-id='validation-tree-header'>
<div className='tree-header-title' >
- <SVGIcon name='zip' color={props.selectedNode === nodeFilters.ALL ? 'primary' : ''} iconClassName='header-icon' />
+ {/*<SVGIcon name='zip' color={props.selectedNode === nodeFilters.ALL ? 'primary' : ''} iconClassName='header-icon' />*/}
<span className={classNames({'tree-header-title-text' : true,
- 'tree-header-title-selected' : props.selectedNode === nodeFilters.ALL})}>{i18n(`HEAT${hasErrors ? ' (Draft)' : ''}`)}</span>
+ 'tree-header-title-selected' : props.selectedNode === nodeFilters.ALL})}>{i18n(`${props.headerTitle} ${hasErrors ? '(Draft)' : ''}`)}</span>
</div>
<ErrorsAndWarningsCount errorList={props.errorList} size='large' />
</div>);
@@ -134,7 +134,7 @@ class HeatFileTree extends React.Component {
<div key={node.name + rand} className={classNames({'tree-block-inside' : !node.header})}>
{
node.header ?
- <HeatFileTreeHeader selectedNode={selectedNode} errorList={this.props.errorList} selectNode={(nodeName) => this.selectNode(nodeName)} /> :
+ <HeatFileTreeHeader headerTitle={node.name} selectedNode={selectedNode} errorList={this.props.errorList} selectNode={(nodeName) => this.selectNode(nodeName)} /> :
<HeatFileTreeRow toggleExpanded={this.props.toggleExpanded} node={node} path={path} selectedNode={selectedNode} selectNode={() => this.selectNode(node.name)} />
}
{
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationView.jsx
index 11f3543e39..c7ab3e644c 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationView.jsx
@@ -186,12 +186,12 @@ const OnboardingProcedure = ({onboardingMethod, onDataChanged, genericFieldInfo}
<GridSection title={i18n('Onboarding procedure')}>
<GridItem colSpan={4}>
<Input
- label={i18n('HEAT file')}
+ label={i18n('Network Package')}
overlayPos='top'
isValid={genericFieldInfo.onboardingMethod.isValid}
- checked={onboardingMethod === onboardingMethodConst.HEAT}
+ checked={onboardingMethod === onboardingMethodConst.NETWORK_PACKAGE}
errorText={genericFieldInfo.onboardingMethod.errorText}
- onChange={() => onDataChanged({onboardingMethod:'HEAT'},SP_CREATION_FORM_NAME)}
+ onChange={() => onDataChanged({onboardingMethod: onboardingMethodConst.NETWORK_PACKAGE},SP_CREATION_FORM_NAME)}
type='radio'
data-test-id='new-vsp-creation-procedure-heat' />
</GridItem>
@@ -202,7 +202,7 @@ const OnboardingProcedure = ({onboardingMethod, onDataChanged, genericFieldInfo}
checked={onboardingMethod === onboardingMethodConst.MANUAL}
isValid={genericFieldInfo.onboardingMethod.isValid}
errorText={genericFieldInfo.onboardingMethod.errorText}
- onChange={() => onDataChanged({onboardingMethod:'Manual'},SP_CREATION_FORM_NAME)}
+ onChange={() => onDataChanged({onboardingMethod: onboardingMethodConst.MANUAL},SP_CREATION_FORM_NAME)}
type='radio'
data-test-id='new-vsp-creation-procedure-manual' />
</GridItem>
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js
index 8806ffd0bf..a13e742006 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js
@@ -53,7 +53,7 @@ export const mapStateToProps = ({softwareProduct, licenseModel: {licenseAgreemen
fullCategoryDisplayName
},
isReadOnlyMode,
- componentsList,
+ componentsList,
isManual: currentSoftwareProduct.onboardingMethod === onboardingMethod.MANUAL
};
};
@@ -65,7 +65,6 @@ const mapActionsToProps = (dispatch, {version}) => {
licenseModelId,
version
}),
- onAttachmentsSelect: ({id: softwareProductId}) => OnboardingActionHelper.navigateToSoftwareProductAttachments(dispatch, {softwareProductId, version}),
onUpload: (softwareProductId, formData) =>
SoftwareProductActionHelper.uploadFile(dispatch, {
softwareProductId,
@@ -98,7 +97,7 @@ const mapActionsToProps = (dispatch, {version}) => {
data: {
title: i18n('Upload Failed'),
confirmationButtonText: i18n('Continue'),
- msg: i18n('no zip file was uploaded or zip file doesn\'t exist')
+ msg: i18n('no zip or csar file was uploaded or expected file doesn\'t exist')
}
}),
onComponentSelect: ({id: softwareProductId, componentId}) => {
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx
index 7ffbeda4dc..72a416473c 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx
@@ -57,7 +57,6 @@ class SoftwareProductLandingPageView extends React.Component {
isReadOnlyMode: React.PropTypes.bool,
componentsList: React.PropTypes.arrayOf(ComponentPropType),
onDetailsSelect: React.PropTypes.func,
- onAttachmentsSelect: React.PropTypes.func,
onUpload: React.PropTypes.func,
onUploadConfirmation: React.PropTypes.func,
onInvalidFileSizeUpload: React.PropTypes.func,
@@ -78,15 +77,13 @@ class SoftwareProductLandingPageView extends React.Component {
disableClick={true}
ref='fileInput'
name='fileInput'
- accept='.zip'
+ accept='.zip, .csar'
disabled>
<div className='draggable-wrapper'>
<div className='software-product-landing-view-top'>
<div className='row'>
<ProductSummary currentSoftwareProduct={currentSoftwareProduct} onDetailsSelect={onDetailsSelect} />
- {isManual ?
- <div className='details-panel'/>
- : this.renderProductDetails(currentSoftwareProduct, isReadOnlyMode)}
+ {this.renderProductDetails(isManual, isReadOnlyMode)}
</div>
</div>
</div>
@@ -106,34 +103,18 @@ class SoftwareProductLandingPageView extends React.Component {
}
}
- renderProductDetails(currentSoftwareProduct, isReadOnlyMode) {
- let {validationData} = currentSoftwareProduct;
- let {onAttachmentsSelect} = this.props;
- let details = {
- heatTemplates: validationData ? '1' : '0',
- images: '0',
- otherArtifacts: '0'
- };
-
+ renderProductDetails(isManual, isReadOnlyMode) {
return (
<div className='details-panel'>
- <div className='software-product-landing-view-heading-title'>{i18n('Software Product Attachments')}</div>
- <div className='software-product-landing-view-top-block'>
- <div
- className='software-product-landing-view-top-block-col'
- onClick={() => onAttachmentsSelect(currentSoftwareProduct)}>
- <div>
- <div className='attachment-details'>{i18n('HEAT Templates')} (<span
- className='attachment-details-count'>{details.heatTemplates}</span>)
- </div>
- </div>
+ { !isManual && <div>
+ <div className='software-product-landing-view-heading-title'>{i18n('Software Product Attachments')}</div>
+ <DraggableUploadFileBox
+ dataTestId='upload-btn'
+ isReadOnlyMode={isReadOnlyMode}
+ className={classnames('software-product-landing-view-top-block-col-upl', {'disabled': isReadOnlyMode})}
+ onClick={() => this.refs.fileInput.open()}/>
</div>
- <DraggableUploadFileBox
- dataTestId='upload-btn'
- isReadOnlyMode={isReadOnlyMode}
- className={classnames('software-product-landing-view-top-block-col-upl', {'disabled': isReadOnlyMode})}
- onClick={() => this.refs.fileInput.open()}/>
- </div>
+ }
</div>
);
}
diff --git a/openecomp-ui/test/softwareProduct/attachments/SoftwareProductAttachmentsView.test.js b/openecomp-ui/test/softwareProduct/attachments/SoftwareProductAttachmentsView.test.js
index 5dfe98f273..355a3162b1 100644
--- a/openecomp-ui/test/softwareProduct/attachments/SoftwareProductAttachmentsView.test.js
+++ b/openecomp-ui/test/softwareProduct/attachments/SoftwareProductAttachmentsView.test.js
@@ -36,13 +36,13 @@ describe('SoftwareProduct Attachments - View: ', function () {
let versionControllerData = VersionControllerUtilsFactory.build();
let softwareProductAttachments = {
+ attachmentsDetails: {activeTab: tabsMapping.SETUP},
heatSetup: {},
heatValidation: {
attachmentsTree,
errorList
},
- heatSetupCache: {},
- activeTab: tabsMapping.SETUP
+ heatSetupCache: {}
};
let data = defaultStoreFactory.build({softwareProduct: {softwareProductAttachments, softwareProductEditor: {data: {...versionControllerData}}}});
var result = mapStateToProps(data);
@@ -57,6 +57,7 @@ describe('SoftwareProduct Attachments - View: ', function () {
let versionControllerData = VersionControllerUtilsFactory.build();
let softwareProductAttachments = {
+ attachmentsDetails: {},
heatSetup: {},
heatValidation: {
attachmentsTree,
diff --git a/sdc-os-chef/sdc-backend/Dockerfile b/sdc-os-chef/sdc-backend/Dockerfile
index 7054cc10c3..9052e74b52 100644
--- a/sdc-os-chef/sdc-backend/Dockerfile
+++ b/sdc-os-chef/sdc-backend/Dockerfile
@@ -1,36 +1,21 @@
-FROM jetty:9.3-jre8
+FROM openecomp/base_sdc-backend:1.0.0-SNAPSHOT-latest
-ARG HTTP_PROXY
-ARG HTTPS_PROXY
-
-ENV HTTP_PROXY ${HTTP_PROXY}
-ENV HTTPS_PROXY ${HTTPS_PROXY}
-
-RUN if [ ! -z ${HTTP_PROXY} ]; then echo "Acquire::http::proxy \"${HTTP_PROXY}\";" >> /etc/apt/apt.conf; fi && \
- if [ ! -z ${HTTPS_PROXY} ]; then echo "Acquire::https::proxy \"${HTTPS_PROXY}\";" >> /etc/apt/apt.conf; fi
+COPY chef-solo /root/chef-solo/
+COPY chef-repo/cookbooks/. /root/chef-solo/cookbooks/
-RUN apt-get -y update
-RUN apt-get -y install apt-utils
-RUN apt-get -y install curl
-RUN apt-get -y install vim
-RUN apt-get -y install jq
-RUN apt-get -y install python libssl-dev libcurl4-openssl-dev python-dev gcc
+#RUN python /root/chef-solo/cookbooks/sdc-normatives/files/default/get-pip.py
-COPY chef-solo /root/chef-solo/
-COPY chef-repo/cookbooks/. /root/chef-solo/cookbooks/
+ADD onboarding-be-*.war ${JETTY_BASE}/webapps/
-RUN python /root/chef-solo/cookbooks/sdc-normatives/files/default/get-pip.py
-RUN pip install pycurl
+ADD catalog-be-*.war ${JETTY_BASE}/webapps/
-# install chef-solo
-RUN curl -L https://omnitruck.chef.io/install.sh | bash
+ADD api-docs.war ${JETTY_BASE}/webapps/
-ADD onboarding-be-*.war ${JETTY_BASE}/webapps/
-ADD catalog-be-*.war ${JETTY_BASE}/webapps/
-ADD api-docs.war ${JETTY_BASE}/webapps/
-RUN chown -R jetty:jetty ${JETTY_BASE}/webapps
+RUN chown -R jetty:jetty ${JETTY_BASE}/webapps
COPY startup.sh /root/
+
RUN chmod 770 /root/startup.sh
+
ENTRYPOINT [ "/root/startup.sh" ]
diff --git a/sdc-os-chef/sdc-cassandra/Dockerfile b/sdc-os-chef/sdc-cassandra/Dockerfile
index 7af6de1de4..6066aeb453 100644
--- a/sdc-os-chef/sdc-cassandra/Dockerfile
+++ b/sdc-os-chef/sdc-cassandra/Dockerfile
@@ -1,30 +1,11 @@
-FROM cassandra:2.1.17
-
-ARG HTTP_PROXY
-ARG HTTPS_PROXY
-
-ENV HTTP_PROXY ${HTTP_PROXY}
-ENV HTTPS_PROXY ${HTTPS_PROXY}
-
-RUN if [ ! -z ${HTTP_PROXY} ]; then echo "Acquire::http::proxy \"${HTTP_PROXY}\";" >> /etc/apt/apt.conf; fi && \
- if [ ! -z ${HTTPS_PROXY} ]; then echo "Acquire::https::proxy \"${HTTPS_PROXY}\";" >> /etc/apt/apt.conf; fi
-
-#ENV DEBIAN_FRONTEND noninteractive
-RUN apt-get -y update && apt-get -y install --no-install-recommends \
- curl \
- vim \
- apt-utils \
- openjdk-8-jdk
-
-RUN update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
+FROM openecomp/base_sdc-cassandra:1.0.0-SNAPSHOT-latest
COPY chef-solo /root/chef-solo/
-COPY chef-repo/cookbooks /root/chef-solo/cookbooks/
-
-# install chef-solo
-RUN curl -L https://omnitruck.chef.io/install.sh | bash
+COPY chef-repo/cookbooks /root/chef-solo/cookbooks/
COPY startup.sh /root/
+
RUN chmod 770 /root/startup.sh
+
ENTRYPOINT [ "/root/startup.sh" ]
diff --git a/sdc-os-chef/sdc-elasticsearch/Dockerfile b/sdc-os-chef/sdc-elasticsearch/Dockerfile
index 89516a6727..60db8e5b6b 100644
--- a/sdc-os-chef/sdc-elasticsearch/Dockerfile
+++ b/sdc-os-chef/sdc-elasticsearch/Dockerfile
@@ -1,27 +1,11 @@
-FROM elasticsearch:2.1.2
-
-ARG HTTP_PROXY
-ARG HTTPS_PROXY
-
-ENV HTTP_PROXY ${HTTP_PROXY}
-ENV HTTPS_PROXY ${HTTPS_PROXY}
-
-RUN if [ ! -z ${HTTP_PROXY} ]; then echo "Acquire::http::proxy \"${HTTP_PROXY}\";" >> /etc/apt/apt.conf; fi && \
- if [ ! -z ${HTTPS_PROXY} ]; then echo "Acquire::https::proxy \"${HTTPS_PROXY}\";" >> /etc/apt/apt.conf; fi
-
-RUN apt-get -y update
-RUN apt-get -y install apt-utils
-RUN apt-get -y install curl
-RUN apt-get -y install vim
-RUN mkdir -p /var/chef/nodes
+FROM openecomp/base_sdc-elasticsearch:1.0.0-SNAPSHOT-latest
COPY chef-solo /root/chef-solo/
-COPY chef-repo/cookbooks /root/chef-solo/cookbooks/
-# install chef-solo
-RUN curl -L https://omnitruck.chef.io/install.sh | bash
+COPY chef-repo/cookbooks /root/chef-solo/cookbooks/
COPY startup.sh /root/
+
RUN chmod 770 /root/startup.sh
ENTRYPOINT [ "/root/startup.sh" ]
diff --git a/sdc-os-chef/sdc-frontend/Dockerfile b/sdc-os-chef/sdc-frontend/Dockerfile
index c59d9e21da..7f9207d545 100644
--- a/sdc-os-chef/sdc-frontend/Dockerfile
+++ b/sdc-os-chef/sdc-frontend/Dockerfile
@@ -1,30 +1,16 @@
-FROM jetty:9.3-jre8
-
-ARG HTTP_PROXY
-ARG HTTPS_PROXY
-
-ENV HTTP_PROXY ${HTTP_PROXY}
-ENV HTTPS_PROXY ${HTTPS_PROXY}
-
-RUN if [ ! -z ${HTTP_PROXY} ]; then echo "Acquire::http::proxy \"${HTTP_PROXY}\";" >> /etc/apt/apt.conf; fi && \
- if [ ! -z ${HTTPS_PROXY} ]; then echo "Acquire::https::proxy \"${HTTPS_PROXY}\";" >> /etc/apt/apt.conf; fi
-
-RUN apt-get -y update
-RUN apt-get -y install apt-utils
-RUN apt-get -y install curl
-RUN apt-get -y install vim
+FROM openecomp/base_sdc-frontend:1.0.0-SNAPSHOT-latest
COPY chef-solo /root/chef-solo/
-COPY chef-repo/cookbooks /root/chef-solo/cookbooks/
-# install chef-solo
-RUN curl -L https://omnitruck.chef.io/install.sh | bash
+COPY chef-repo/cookbooks /root/chef-solo/cookbooks/
RUN cp ${JETTY_HOME}/resources/log4j.properties ${JETTY_BASE}/resources/log4j.properties
-ADD onboarding*.war ${JETTY_BASE}/webapps/
-ADD catalog-fe-*.war ${JETTY_BASE}/webapps/
-RUN chown -R jetty:jetty ${JETTY_BASE}/webapps
+ADD onboarding*.war ${JETTY_BASE}/webapps/
+
+ADD catalog-fe-*.war ${JETTY_BASE}/webapps/
+
+RUN chown -R jetty:jetty ${JETTY_BASE}/webapps
COPY startup.sh /root/
diff --git a/sdc-os-chef/sdc-kibana/Dockerfile b/sdc-os-chef/sdc-kibana/Dockerfile
index a42225a91c..6a058def0e 100644
--- a/sdc-os-chef/sdc-kibana/Dockerfile
+++ b/sdc-os-chef/sdc-kibana/Dockerfile
@@ -1,23 +1,8 @@
-FROM kibana:4.3.3
-
-ARG HTTP_PROXY
-ARG HTTPS_PROXY
-
-ENV HTTP_PROXY ${HTTP_PROXY}
-ENV HTTPS_PROXY ${HTTPS_PROXY}
-
-RUN if [ ! -z ${HTTP_PROXY} ]; then echo "Acquire::http::proxy \"${HTTP_PROXY}\";" >> /etc/apt/apt.conf; fi && \
- if [ ! -z ${HTTPS_PROXY} ]; then echo "Acquire::https::proxy \"${HTTPS_PROXY}\";" >> /etc/apt/apt.conf; fi
-
-RUN apt-get -y update
-RUN apt-get -y install curl
-RUN apt-get -y install vim
+FROM openecomp/base_sdc-kibana:1.0.0-SNAPSHOT-latest
COPY chef-solo /root/chef-solo/
-COPY chef-repo/cookbooks/. /root/chef-solo/cookbooks/
-# install chef-solo
-RUN curl -L https://omnitruck.chef.io/install.sh | bash
+COPY chef-repo/cookbooks/. /root/chef-solo/cookbooks/
COPY startup.sh /root/
diff --git a/sdc-os-chef/sdc-sanity/Dockerfile b/sdc-os-chef/sdc-sanity/Dockerfile
index 9dd829158f..ea137b401b 100644
--- a/sdc-os-chef/sdc-sanity/Dockerfile
+++ b/sdc-os-chef/sdc-sanity/Dockerfile
@@ -1,27 +1,11 @@
-FROM ubuntu:16.04
-
-ARG HTTP_PROXY
-ARG HTTPS_PROXY
-
-ENV HTTP_PROXY ${HTTP_PROXY}
-ENV HTTPS_PROXY ${HTTPS_PROXY}
-
-RUN if [ ! -z ${HTTP_PROXY} ]; then echo "Acquire::http::proxy \"${HTTP_PROXY}\";" >> /etc/apt/apt.conf; fi && \
-RUN apt-get -y update && \
- apt-get -y install --no-install-recommends apt-utils && \
- apt-get install curl \
- default-jre
- openjdk-8-jdk
- vim && \
- update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
- if [ ! -z ${HTTPS_PROXY} ]; then echo "Acquire::https::proxy \"${HTTPS_PROXY}\";" >> /etc/apt/apt.conf; fi
+FROM openecomp/base_sdc-sanity:1.0.0-SNAPSHOT-latest
COPY chef-solo /root/chef-solo/
-COPY chef-repo/cookbooks/. /root/chef-solo/cookbooks/
-# install chef-solo
-RUN curl -L https://omnitruck.chef.io/install.sh | bash
+COPY chef-repo/cookbooks/. /root/chef-solo/cookbooks/
COPY startup.sh /root/
+
RUN chmod 770 /root/startup.sh
+
ENTRYPOINT [ "/root/startup.sh" ]